我正在使用log4j2和滚动appender文件。我想使用自定义布局,但它不能正常工作。
我在JBoss工作。我已将具有cusotmize布局的lib放在libs目录中,因此它位于类路径中。
在log4j2.xml,我已经把以下配置:
<Configuration status="trace" packages="mypackage.audit">
...
<Routing name="RoutingAppender">
<Routes pattern="$${ctx:FlowName">
<Route>
<RollingFile name="Rolling-${ctx:FlowName}" fileName="logs/Audit-${ctx:FlowName}.log"
filePattern="./logs/Audit-${ctx:FlowName}-%d{yyyy-MM-dd}-%i.log.gz" >
<PatternLayout>
<pattern>%d{ISO8601} [%t] %p %c{3} - %m%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="6" modulate="true" />
</Policies>
<Layout type="AuditLayout" locationInfo="true"/>
</RollingFile>
</Route>
</Routes>
</Routing>
</Appenders>
<Loggers>
<Logger name="CustomizeAuditing" level="info" >
<AppenderRef ref="RoutingAppender"/>
</Logger>
</Loggers>
</Configuration>
但是没有正确记录!
提前谢谢
贾米拉
以下工作为我:log4j2版本2.2
和
<?xml version="1.0" encoding="UTF-8"?>
<Configuration packages="com.redknee.bssauto.helpers">
<Appenders>
<RollingFile name="Rolling-default" fileName="logs/bssauto.html"
filePattern="logs/$${date:yyyy-MM}/bssauto-%d{MM-dd-yyyy}-%i.log.gz">
<CustomHTMLLayout charset="UTF-8" title="BSSAuto Logs" locationInfo="true" />
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Root level="trace">
<AppenderRef ref="Rolling-default"/>
</Root>
</Loggers>
</Configuration>
通知如下
<Configuration packages="com.redknee.bssauto.helpers">
这里的包应该包含所有包含布局自定义类的包
<CustomHTMLLayout charset="UTF-8" title="BSSAuto Logs" locationInfo="true" />
CustomHTMLLayout是通过扩展AbstractStringLayout创建的自定义类
我创建了一个自定义追加器,但在运行测试时没有调用它。以下是这些属性的外观: 我的appender被称为WindowsEventLogappender。知道我的档案有什么问题吗?我看到了控制台测试消息,但没有看到来自我的appender的消息。现在我只是在我的自定义追加器中做一个system.out.println来验证它是否被调用。
据我所知,log4j2中的RollingFileAppender不会在指定的时间(比方说-在一小时结束时)回滚,而是在超过时间阈值后到达的第一个日志事件时回滚。 有没有一种方法可以触发一个事件,一方面会导致文件滚动,另一方面不会附加到日志中(或者会附加一些无关紧要的东西,比如空字符串)?
我的log4j2属性文件如下所示- 当我试图使用以下代码访问appender时 它将条目记录在SeriesIn响应appender中,而不是ejdk appender中。我的log4j2有多个自定义appender。我需要在不同的类文件中使用不同的appender,它应该将条目记录在正确的文件中。
有办法得到滚动文件名吗?我写了自定义插件,信号文件滚动,但我需要得到滚动文件的文件名。我的插件从java代码发出信号: 自定义插件:
我们使用filebeat刮取log.json文件并将其推送到elk服务器 我想在日志目录中添加一个op.json自定义json滚动日志文件。这是为了收集有关调用的操作和perf信息的信息。 基本上,我只想使用一个管理滚动文件的类。在类中,将有一个logOp函数来访问java对象,并对其进行序列化,在json输出中添加一些标准日志字段。 -------------------------------