帮助手册

Log4j 日志

Log4j 是 Java 应用程序中广泛使用的日志框架。Site24x7 agent 自动检测机器上的 Log4j 日志,并识别日志字段,如日期和时间、日志级别、源文件名、行号和消息。借助对 Log4j 日志的默认支持,您可以使用我们直观的 Web 客户端搜索、查看、收集和分析数据。Site24x7 AppLogs 是一种独特的基于云的日志管理服务,可帮助您轻松管理日志。了解有关 Site24x7 日志管理的更多信息

入门

  1. 登录您的 Site24x7 账户。
  2. 下载并安装 Site24x7 服务器监控 agent(Windows | Linux)。 
  3. 转至管理 > AppLogs >日志配置文件并点击添加日志配置文件

日志文件路径

每个应用程序将日志写入不同的文件夹和文件中。Log4j 日志将从以下各操作系统的文件夹路径获取。如果您的日志存储在其他文件夹中,可以在创建日志配置文件时在文件路径中指定该文件夹路径。

Linux 图标: /var/log/java/*.log*
Windows 图标: C:\\*java*\\logs\\*.log
注意

此处给出的日志文件路径仅供参考。默认情况下,Site24x7 会运行脚本来查找具体的文件路径。

日志模式

DateTime:date$ $LogLevel$ $SourceFileName$ $Line:number$ - $Message$

这是 Site24x7 根据以下日志示例为解析 Log4J 日志而定义的默认模式。

日志示例

2017-07-02 20:52:39,342 DEBUG className 200 - This is debug message

上面的示例日志可以分为 5 个字段,每个字段将从中获取各自的值,然后上传到 Site24x7。

 字段名称  字段值
日期时间  2017-07-02 20:52:39, 342
日志级别 DEBUG
源文件名   className
行号 200
消息 This is debug message

Log4j 日志仪表板

AppLogs 为每种日志类型创建专属仪表板,并默认显示几个小部件。以下是 Log4J 日志仪表板中的可用小部件列表:

  • 异常
  • 日志生成最多
注意

除默认小部件外,您保存的搜索也将自动添加到仪表板。

Log4j appender 

Site24x7 提供一个 Log4j appender,允许 Java 应用程序直接将日志发送至 Site24x7 平台,无需 agent。这种方式通过 API 推送日志,简化了日志转发流程,无需将日志写入本地日志文件。

此方案非常适合希望从基于 Java 的应用程序实现轻量级无 agent 日志转发的用户。

工作原理 

Site24x7 提供自定义 appender,用于支持此日志框架进行直接日志传输。对于 Java,使用 Log4j2 自定义 appender 来丰富、批处理日志,并使用 API 令牌将其安全传输到 Site24x7。appender 不再将日志写入文件,而是将其流式传输至 Site24x7 的日志管理服务。

前提条件

在配置 Site24x7 Log4j2 appender 之前,请确保应用程序中包含以下依赖项:

  1. 如果使用 Maven,请在 pom.xml 文件中添加以下依赖项:
    <dependency>
      <groupId>com.site24x7</groupId>
      <artifactId>custom-log4j2-appender</artifactId>
      <version>1.3.0</version>
    </dependency>
    
  2. 如果未使用 Maven,可以手动下载所需的 JAR 文件并添加到应用程序的 class path 中:

配置 Log4j appender

  1. 导航至管理 > AppLogs > 日志类型(+)
  2. 日志示例字段中,可以使用以下示例 JSON 日志创建新的日志类型:
    {
    "@timestamp":"2025-06-10T18:39:14.017Z",
    "LogLevel":"ERROR",
    "message":"Error #1",
    "logger":"org.zylker.Main",
    "thread":"main",
    "exception":"java.lang.NullPointerException: Generated NullPointerException\n\tat org.example.Main.generateRandomError(Main.java:71)\n\tat org.example.Main.main(Main.java:56)\n",
    "app":"test",
    "hostname":"zylker",
    "env":"local",
    "type":"test-logs"
    }
  3. 日志模式字段中,可以使用以下示例日志模式提取相关字段:
    json $exception$ $@timestamp as timestamp:date:yyyy-MM-dd'T'HH:mm:ss.SSS'Z'$ $logger$ $thread$ $message$ $LogLevel$
  4. 点击保存并前往日志配置文件按钮。
  5. 添加日志配置文件窗口中,填写所需的详细信息。
  6. 选择日志类型字段旁,点击铅笔图标  编辑图标 进行编辑。
  7. 点击后,将打开编辑日志类型表单
  8. 切换启用API 上传字段。
  9. 点击保存应用更改。
注意

API 密钥只有在日志类型表单启用并保存后才会永久关联。在此之前,密钥为临时性的,可能会发生变化。

  1. 更新您的 log4j2.xml 配置文件以使用 Site24x7 appender,以下是示例代码:
    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="WARN">
      <Appenders>
        <Site24x7Appender name="Site24x7" site24x7Token="YOUR_API_TOKEN_HERE"
            logParsingEnabled="false">
        </Site24x7Appender>
      </Appenders>
      <Loggers>
        <Root level="info">
          <AppenderRef ref="Site24x7" />
        </Root>
      </Loggers>
    </Configuration>
    

参数

Appender 元素

属性

描述

默认值

name

appender 的逻辑名称;在 logger 部分引用,用于将此 appender 附加到日志事件。

"Site24x7"

site24x7Token

用于向 Site24x7 进行身份验证并发送日志的 API 令牌。请将"YOUR_API_TOKEN_HERE"替换为您的实际令牌。

Nil

batchSize

在一次批次发送到 Site24x7 之前收集的日志事件数量,有助于优化网络使用。

"500"

drainTimeoutSec

即使未达到批次大小,appender 在刷新并发送日志之前等待的最长时间(秒)。

"15"

addHostname

将主机机器名称附加到每个日志条目。在分布式环境中可用于识别日志来源。

"true"

logParsingEnabled

禁用自动日志解析。设置为 true 时,Site24x7 将尝试解析结构化日志格式(如 JSON)。发送纯文本日志时请设置为 false。

"false"

Loggers 元素

属性

描述

<Root level="info">

定义根 logger 的日志级别(本例中为 INFO)。INFO 级别及以上的所有日志事件都将被捕获。

<AppenderRef ref="Site24x7" />

将上面定义的 Site24x7 appender 附加到根 logger,以处理日志输出。

上述配置允许您使用自定义 Log4j2 appender,将 Java 应用程序的日志无缝转发至 Site24x7。配置完成并使用有效的 API 令牌完成身份验证后,您的应用程序日志将被高效地流式传输至 Site24x7,用于监控和分析,无需额外的 agent 或手动导出。

本文档对您有帮助吗?

您愿意帮助我们改进文档吗?请告诉我们哪些方面可以做得更好。


很抱歉本文档未能让您满意。我们希望了解可以从哪些方面改进您的体验。


感谢您抽出时间分享反馈。我们将利用您的反馈来改进在线帮助资源。

短链接已复制!