是否可以配置log4j以調用模式佈局中的靜態函數?我們如何配置log4j2以json格式打印日誌?我已經試過這配置log4j在登錄模式之前調用靜態函數
<JSONLayout complete="true" compact="false"/>
我的完整log4j2.xml文件是這樣的: -
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Properties>
<Property name="log-path">logs</Property>
</Properties>
<Appenders>
<Console name="console-log" target="SYSTEM_OUT">
<JSONLayout complete="true" compact="false"/>
<PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"/>
</Console>
<RollingFile name="trace-log" fileName="${log-path}/ltlogs-trace.log"
filePattern="${log-path}/ltlogs-%d{yyyy-MM-dd}.log">
<JSONLayout complete="true" compact="false"/>
<PatternLayout>
<pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
</Policies>
</RollingFile>
<RollingFile name="error-log" fileName="${log-path}/lt-logs.log"
filePattern="${log-path}/lt-logs-%d{yyyy-MM-dd}.log">
<JSONLayout complete="true" compact="false"/>
<PatternLayout>
<pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="com.limetray.helper" level="debug" additivity="false">
<appender-ref ref="trace-log" level="debug"/>
<appender-ref ref="error-log" level="error"/>
<appender-ref ref="console-log" level="debug"/>
</Logger>
<Root level="info" additivity="false">
<AppenderRef ref="console-log"/>
</Root>
</Loggers>
</Configuration>
刪除,好像是重寫你的 –
kuhajeyan
log4j還通過AppenderSkeleton提供了附加功能,看看這篇文章http://stackoverflow.com/questions/6072389/how-to-create-a-own-附加器功能於log4j的 – calvin