本文介绍如何通过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日志为例。
登录日志服务控制台。
- 在接入数据区域,选择正则-文本日志。
- 选择目标Project和Logstore,单击下一步。
创建机器组。
如果您已有可用的机器组,请将该机器组添加到应用机器组。
如果您还没有可用的机器组,请执行以下操作(以ECS为例)。
使用场景选择主机场景。
安装环境选择ECS。
选择机器组单击创建机器组。
在创建机器组页签中,选中目标ECS实例,单击安装并创建为机器组。
具体操作,请参见安装Logtail(ECS实例)。
页面中Logtail安装情况提示成功,则表示安装成功。
在创建机器组页面,输入机器组名称,其他参数均可保持默认配置,然后单击确定。
更多信息,请参见创建IP地址机器组。
确认目标机器组已在应用机器组区域,单击下一步。
重要创建机器组后立刻应用,可能因为连接未生效,导致心跳为FAIL,您可单击自动重试。如果还未解决,请参见Logtail机器组无心跳进行排查。
在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。
预览数据及创建索引,然后单击下一步。索引的更多信息,请参见创建索引。
单击查询日志,系统将跳转至Logstore查询分析页面。
您需要等待1分钟左右,待索引生效后,才能在原始日志页签中,查看已采集到的日志。更多信息,请参见查询和分析日志。