本文介绍如何通过Loghub Log4j Appender或Logtail采集Log4j日志。

背景信息

Log4j是Apache的一个开放源代码项目,通过Log4j,可以控制日志的优先级、输出目的地和输出格式。日志的优先级从高到低为ERROR、WARN、 INFO、DEBUG,日志的输出目的地指定了将日志打印到控制台还是文件中,输出格式控制了输出的日志内容格式。 本文档以Log4j的默认配置为例进行说明,如下所示。
<Configuration status="WARN">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss:SSS zzz} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Logger name="com.foo.Bar" level="trace">
      <AppenderRef ref="Console"/>
    </Logger>
    <Root level="error">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>
日志输出样例如下所示。
2013-12-25 19:57:06,954 [10.10.10.10] WARN impl.PermanentTairDaoImpl - Fail to Read Permanent Tair,key:e:470217319319741_1,result:com.example.tair.Result@172e3ebc[rc=code=-1, msg=connection error or timeout,value=,flag=0]

通过Loghub Log4j Appender采集Log4j日志

通过Loghub Log4j Appender采集Log4j日志的操作步骤请参见 Log4j Appender

通过Logtail采集Log4j日志

日志服务提供配置向导,帮助您快速完成Logtail采集配置。本文以通过完整正则模式采集Log4j日志为例。

  1. 登录 日志服务控制台
  2. 接入数据 区域,选择 正则-文本日志
  3. 选择目标Project和Logstore,单击 下一步
  4. 创建机器组。
    • 如果您已有可用的机器组,请单击 使用现有机器组
    • 如果您还没有可用的机器组,请执行以下操作(以ECS为例)。
      1. ECS机器 页签中,通过手动选择实例方式选择目标ECS实例,单击 创建

        具体操作,请参见 安装Logtail(ECS实例)

        重要 如果您的服务器是与日志服务属于不同账号的ECS、其他云厂商的服务器和自建IDC时,您需要手动安装Logtail。更多信息,请参见 安装Logtail(Linux系统) 安装Logtail(Windows系统)

        手动安装Logtail后,您必须在该服务器上手动配置用户标识。具体操作,请参见 配置用户标识

      2. 安装完成后,单击 确认安装完毕
      3. 创建机器组 页面,输入 名称 ,单击 下一步

        日志服务支持创建IP地址机器组和用户自定义标识机器组,详细参数说明请参见 创建IP地址机器组 创建用户自定义标识机器组

  5. 选中目标机器组,将该机器组从 源机器组 移动到 应用机器组 ,单击 下一步
    重要 创建机器组后立刻应用,可能因为连接未生效,导致心跳为 FAIL ,您可单击 自动重试 。如果还未解决,请参见 Logtail机器组无心跳 进行排查。
  6. Logtail配置 页签中,创建Logtail配置。
    重要参数配置如下所示。其他参数说明,请参见 使用完整正则模式采集日志
    • 日志样例 2021-12-25 19:57:06,954 [10.10.10.10] WARN impl.PermanentTairDaoImpl - Fail to Read Permanent Tair,key:e:470217319319741_1,result:com.example.tair.Result@172e3ebc[rc=code=-1, msg=connection error or timeout,value=,flag=0]
    • 正则 (\d+-\d+-\d+\s\d+:\d+:\d+,\d+)\s\[([^\]]*)\]\s(\S+)\s+(\S+)\s-\s(.*)
    • 日志抽取内容 :日志服务会根据您输入的日志样例和正则表达式,自动提取日志内容。您需要为该内容设置对应的Key。
    Log4j日志
  7. 预览数据及创建索引,然后单击 下一步
    日志服务默认开启全文索引。您也可以根据采集到的日志,手动创建字段索引,或者单击 自动生成索引 ,日志服务将自动生成字段索引。更多信息,请参见 创建索引
    重要 如果您要查询和分析日志,那么全文索引和字段索引必须至少启用一种。同时启用时,以字段索引为准。
  8. 单击 查询日志 ,系统将跳转至Logstore查询分析页面。
    您需要等待1分钟左右,待索引生效后,才能在 原始日志 页签中,查看已采集到的日志。更多信息,请参见 查询和分析日志