Log4j2使用
Log4j 2 maven依赖jar,Log4j 2 从2.4版本开始使用JDK7编译
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.3</version>
</dependency>
<!--使用slf4j封装日志API,如果不使用可以不用引用,log4j2最低要求1.6版本-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.3</version>
</dependency>
<!--异步日志,不使用异步可以不引用-->
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>3.0.0</version>
</dependency>log4j2.xml配置:
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="error">
<Properties>
<Property name="logFilePath">D:\\logs</Property>
<!-- 一小时一个日志文件 -->
<Property name="interval">1</Property>
<!-- 业务日志输出格式 -->
<Property name="selfPattern">%m%n</Property>
<!-- 其中%t参数表示当前线程ID -->
<Property name="ConversionPattern">[oi-service-${sys:dubbo.protocol.port}]%d[%t][%p]
- %m - [%l]%n</Property>
</Properties>
<appenders>
<!-- 输出到控制台 -->
<Console name="Console" target="SYSTEM_OUT">
<ThresholdFilter level="info" onMatch="ACCEPT" />
<PatternLayout pattern="[oi]%d [%p] - %m [%l] %n" />
</Console>
<RollingFile name="debug"
fileName="${logFilePath}/debug-${sys:dubbo.protocol.port}.log"
filePattern="${logFilePath}/debug-${sys:dubbo.protocol.port}.log.%d{yyyy-MM-dd-HH}">
<ThresholdFilter level="debug" onMatch="ACCEPT"
onMismatch="DENY" />
<PatternLayout pattern="${ConversionPattern}" />
<TimeBasedTriggeringPolicy interval="1" />
</RollingFile>
<RollingFile name="info"
fileName="${logFilePath}/info-${sys:dubbo.protocol.port}.log"
filePattern="${logFilePath}/info-${sys:dubbo.protocol.port}.log.%d{yyyy-MM-dd-HH}">
<ThresholdFilter level="info" onMatch="ACCEPT"
onMismatch="DENY" />
<PatternLayout pattern="${ConversionPattern}" />
<TimeBasedTriggeringPolicy interval="${interval}" />
</RollingFile>
<RollingFile name="warn"
fileName="${logFilePath}/warn-${sys:dubbo.protocol.port}.log"
filePattern="${logFilePath}/warn.log-${sys:dubbo.protocol.port}.%d{yyyy-MM-dd-HH}">
<ThresholdFilter level="warn" onMatch="ACCEPT"
onMismatch="DENY" />
<PatternLayout pattern="${ConversionPattern}" />
<TimeBasedTriggeringPolicy interval="${interval}" />
</RollingFile>
<RollingFile name="error"
fileName="${logFilePath}/error-${sys:dubbo.protocol.port}.log"
filePattern="${logFilePath}/error-${sys:dubbo.protocol.port}.log.%d{yyyy-MM-dd-HH}">
<ThresholdFilter level="error" onMatch="ACCEPT"
onMismatch="DENY" />
<PatternLayout pattern="${ConversionPattern}" />
<TimeBasedTriggeringPolicy interval="${interval}" />
</RollingFile>
<RollingFile name="inf"
fileName="${logFilePath}/inf-${sys:dubbo.protocol.port}.log"
filePattern="${logFilePath}/inf-${sys:dubbo.protocol.port}.log.%d{yyyy-MM-dd-HH}">
<ThresholdFilter level="info" onMatch="ACCEPT"
onMismatch="DENY" />
<PatternLayout pattern="${selfPattern}" />
<TimeBasedTriggeringPolicy interval="${interval}" />
</RollingFile>
<RollingFile name="query"
fileName="${logFilePath}/query-${sys:dubbo.protocol.port}.log"
filePattern="${logFilePath}/query-${sys:dubbo.protocol.port}.log.%d{yyyy-MM-dd-HH}">
<ThresholdFilter level="info" onMatch="ACCEPT"
onMismatch="DENY" />
<PatternLayout pattern="${selfPattern}" />
<TimeBasedTriggeringPolicy interval="${interval}" />
</RollingFile>
<Async name="Async">
<AppenderRef ref="Console" />
</Async>
</appenders>
<loggers>
<!--自定义日志输出, 使用异步日志,log4j2建议业务日志使用同步,程序猿使用的日志使用异步 -->
<asyncLogger name="inf" level="info" additivity="false">
<appender-ref ref="inf" />
</asyncLogger>
<logger name="query" level="info" additivity="false">
<appender-ref ref="query" />
</logger>
<logger name="org" level="error" additivity="false">
</logger>
<logger name="com.opensymphony.xwork2" level="off" additivity="false">
</logger>
<logger name="com.alibaba.dubbo" level="error" additivity="false">
</logger>
<asyncRoot level="trace" includeLocation="true">
<appender-ref ref="info" />
<appender-ref ref="error" />
<appender-ref ref="warn" />
<appenderRef ref="Console" level="error" />
</asyncRoot>
</loggers>
</configuration>log4j2异步日志和log4j1性能比较,使用ab,并发10000,100000次请求:
log4j2

log4j1

其中log4j2的性能是log4j1的10倍。
相关推荐
chw0 2020-11-04
大唐帝国前营 2020-08-18
sdaq 2020-07-26
MrLiar 2020-07-07
sdaq 2020-06-16
CXC0 2020-06-14
丨Fanny丨Cri 2020-06-13
CXC0 2020-06-08
dongxurr 2020-06-07
sdaq 2020-06-06
MrLiar 2020-06-04
丨Fanny丨Cri 2020-06-03
MrLiar 2020-05-25
丨Fanny丨Cri 2020-05-17
MrLiar 2020-05-14
MrLiar 2020-05-12
sdaq 2020-05-11