日志文件结构
请求和访问日志文件各自显示特定类型的活动,因此具有一致和特定的文件结构,以获得最大的可读性
服务日志
服务日志文件控制台模式使用颜色来突出显示服务类型和消息级别。在Windows控制台上,应该禁用颜色。
时间戳(UTC)[业务类型][级别][跟踪Id][类和行号][线程]-消息
2018-11-18T15:39:04.902Z [jfac] [INFO] [4b1b8a0b04e31b80]noderregistryserviceimpl:44] [http-exec-4] -请求与serviceId jffe@000“连接”
价值 | 描述 | 例子 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
时间戳 |
记录消息的日期和时间,以UTC时间表示,标准格式为:[yyyy-MM-dd'T'HH:mm:ss。基于rfc - 3339 | 2018 - 11 - 18 - t15:39:04.902z |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
服务类型 |
服务类型、颜色与每项服务的特定颜色相协调,包括:
跨产品服务(如路由器、tomcat、脚本)使用相同的颜色。 |
(jfrpg) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
水平 |
服务标识符为长度为4 ~ 6个字符,包括:
|
(jfrt) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
跟踪Id |
跟踪id值。跟踪id用于标识跨服务的请求 | 4 b1b8a0b04e31b80 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
船级和行号 |
打印此日志条目的完全限定类名和行号。 | s.r.NodeRegistryServiceImpl: 44 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
线程 |
打印此日志条目的线程。“main”,如果不是java。 | (http-exec-4) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
消息 |
日志条目消息。 | 你好JFrog |
请求日志
请求日志文件模式包含一个列表管(“|”)分隔值。文件模式将包含相同数量的列,如果缺少一个值,它将为空。
请注意:如客户未提供,则“内容长度要求
' value初始化为"1
”。
时间戳|跟踪ID |远程地址|用户名|请求方法|请求URL |返回状态|请求内容长度|响应内容长度|请求持续时间|请求用户代理
2018-11-18T15:39:04.902Z|d5d75b3c41242768|127.0.0.1|匿名|GET|api/v1/cert/root|200|0|6|0|JFrog Access Java Client/4.1.12
价值 | 描述 | 例子 |
---|---|---|
时间戳 |
请求完成并输入日志文件的日期和时间,以UTC时间为标准格式:[yyyy-MM-dd'T'HH:mm:ss.SSSZ]。 | 2018 - 11 - 18 - t15:39:04.902z |
跟踪ID |
跟踪id值。 | 4 b1b8a0b04e31b80 |
远程地址 |
远程呼叫方的IP地址(ipv4或ipv6)。 | 10.0.12.3 |
用户名 |
请求用户的用户名或匿名访问时的“匿名”。 | benn |
请求方法 |
HTTP请求方法,大写。 |
GET、PUT |
请求URL |
请求的相对URL。 | api / v1 /证书/根 |
返回状态 |
请求的HTTP返回码。 | 201 |
响应内容长度 |
服务器响应的大小(以字节为单位),例如下载文件的大小。 |
|
请求内容长度 |
用户请求的大小(以字节为单位),例如上传文件的大小。-1如果未知。 | |
请求时间 |
处理请求的时间(以毫秒为单位)。 | |
请求用户代理 |
请求用户代理。 |
|
出站请求日志
的没记录
文件模式包含一个列表管(“|”)分隔值。文件模式将包含相同数量的列,如果缺少一个值,它将为空。
请注意:如客户未提供,则“内容长度要求
' value初始化为"1
”。
时间戳|跟踪ID |远程存储库名称|用户名|请求方法|请求URL |返回状态|请求内容长度|响应内容长度|请求持续时间
2021 - 05 - 12 t13:58:46.686z 40 ea218a769325db | | generic-remote | andreyt | |头https://acme.www.si-fil.com/artifactory/generic-packages/jdbc-drivers/mssql-jdbc-7.4.1.jre11.jar | 200 | 1219373 | 0 | 80
价值 | 描述 | 例子 |
---|---|---|
时间戳 |
请求完成并输入日志文件的日期和时间,以UTC时间为标准格式:[yyyy-MM-dd'T'HH:mm:ss.SSSZ]。 | 2018 - 11 - 18 - t15:39:04.902z |
跟踪ID |
跟踪id值。 | 4 b1b8a0b04e31b80 |
远端存储库名称 | 远程存储库的名称。 | generic-remote |
用户名 |
请求用户的用户名或匿名访问时的“匿名”。 | benn |
请求方法 |
HTTP请求方法,大写。 |
GET、PUT |
远程URL | 远程资源的URL。 |
|
返回状态 |
请求的HTTP返回码。 |
201 |
响应内容长度 |
服务器响应的大小(以字节为单位),例如下载文件的大小。 |
|
请求内容长度 |
用户请求的大小(以字节为单位),例如上传文件的大小。-1如果未知。 |
|
请求时间 |
处理请求的时间(以毫秒为单位)。 |
路由器请求日志
JFrog路由器有一个基于JSON的访问日志,其中包含通过路由器的所有请求,包括服务服务通信。
下面是Router请求日志中的一个条目示例(router-request.log)
{"BackendAddr": "http://localhost:8049", "ClientAddr": "127.0.0.1:61899", "DownstreamContentSize": 2, "DownstreamStatus": 200, "Duration": 8353000, "RequestMethod": "GET", "RequestPath": "/router/api/v1/system/ping", "StartUTC": "2020-11-12T11:53:03.605300906Z", "request_Uber-Trace-Id": "4ccb40200c199346:1a3f95ce1b27711d:71e15f8b6031c9e9:0", "request_User-Agent": "curl/7.54.0", "time": "2019-08-05T14:42:09+03:00", "level": "info", "msg": "" "}
价值 | 描述 | 例子 |
---|---|---|
BackendAddr |
请求被转发到的后端服务器地址 | http://localhost:8049 |
ClientAddr |
远程调用方的原始IP地址(ipv4或ipv6,通常为IP:port)。 | 127.0.0.1:61899 |
DownstreamContentSize |
返回给客户端的响应实体中的字节数。 | 2 |
DownstreamStatus |
请求的HTTP返回码。 | 200 |
持续时间 |
处理请求的时间(以纳秒为单位)。 | 8353000 |
RequestMethod |
HTTP请求方法,大写。 |
得到 |
RequestPath |
请求的相对URL。 | /路由器/ api / v1 /系统/平 |
StartUTC |
日期和时间请求处理已经开始,以UTC时间为标准格式:[yyyy-MM-dd'T'HH:mm:ss。SSSSSSSSSZ]. |
|
request_Uber-Trace-Id |
完整的跟踪id值。 | 4 ccb40200c199346:1a3f95ce1b27711d: 71 e15f8b6031c9e9:0 |
request_User-Agent |
请求用户代理。 | 旋度/ 7.54.0 |
时间 |
请求完成并输入日志文件的日期和时间,以UTC时间为标准格式:[yyyy-MM-dd'T'HH:mm:ss。SSSZ] |
|
时间/味精 |
默认信息和空消息 |
控制台日志
控制台日志文件将所有服务的控制台输出附加为一个普通日志文件。
使用cron作业将日志轮换配置为每小时发生一次为Docker组合和本地安装。
日志轮换在以下安装中不可用:
- 存档
- Mac和Windows
- 手动Docker撰写(不使用捆绑脚本)
由于该文件由所有服务写入,并且可以快速增长,因此建议通过以下两种方式来管理它:使用shared.logging.consoleLog.enabled
中的配置人工系统YAML,
或者通过设置自己的日志旋转。
您必须为Tomcat日志手动配置日志轮换。有关更多信息,请参见配置Tomcat的日志轮换.
通过UI查看日志文件
您可以从UI中查看重要的平台日志文件。
重要的细节
该特性仅在JFrog自托管解决方案上得到支持。
查看系统日志:
- 在政府模块,转到监控|系统日志。
- 选择要查看日志的JFrog服务。
- 选择节点。
- 选择要查看的文件。
日志尾视图每隔几秒自动刷新一次,但是如果希望浏览日志,可以暂停和恢复。
为节省系统资源,请不要在浏览器2022世界杯阿根廷预选赛赛程中不必要地打开日志视图。
发送日志到Syslog
有些站点希望将日志合并到syslog功能中。下面的步骤将使您能够将Java微服务日志发送到syslog。
配置logback库
编辑logback的XML文件美元JFROG_HOME /产品> < / var /等/ < microservice >/ logback.xml
文件。例如,要配置Artifactory使用syslog,请编辑JFROG_HOME美元/ artifactory / var / etc / artifactory / logback.xml
文件。
将以下syslog追加程序添加到logback xml(在其他追加程序旁边)
localhost SYSLOG [%thread] %logger %msg 将以下appender添加到输出中:
- 保存文件,并重新启动服务。
在您的计算机上配置syslog
由于logback使用的是internet套接字,因此必须确保syslog设施接受它们。现代Linux发行版使用rsyslog守护进程进行syslog记录。确保internet域套接字的配置已启用,可以通过编辑/etc/rsyslog.conf
并取消:
提供UDP syslog接收$ModLoad imudp $UDPServerRun 514 #提供TCP syslog接收$ModLoad imtcp $InputTCPServerRun 514
或者把它放在/etc/rsyslog.d
结束在. conf
.
重启rsyslog。
rsyslog restart服务
配置日志篇幅
有两种方法可以配置日志冗长性,这取决于您的JFrog微服务是否基于日志回退(Java微服务)。
使用logback(基于Java的微服务)
可以通过在Logback配置文件的相应条目中输入或修改级别值来配置系统中任何基于Java的日志记录器的详细程度JFROG_HOME /产品> < / var / etc / < microservice > / logback.xml
.例如,要配置Artifactory日志的详细程度,请编辑JFROG_HOME美元/ artifactory / var / etc / artifactory / logback.xml
文件。
对日志配置所做的更改将在几秒钟内重新加载,而不需要重新启动。
<记录器name = " org.artifactory.http。“=”调试" / >
使用系统。yaml(非Java微服务)
的相应条目中的级别值,可以配置系统中任何非基于Java的日志记录器的详细程度system.yaml
配置文件JFROG_HOME / <产品> / var / etc / system.yaml
.
对日志配置所做的更改需要重新启动。
前台:logging: application: level: info