【发布时间】:2018-05-25 15:02:18
【问题描述】:
我正在使用 log4j-core-2.5 进行日志记录,并且我想在日志记录队列已满时丢弃项目。我已经确定这可以通过使用 log4j 中的 log4j2.asyncQueueFullPolicy 配置属性来应用。
请有人帮助我了解如何在我的应用程序中应用此配置。
我正在使用这样的文件配置...
Configurator.initialize("", "log4j-node.xml");
我的配置文件看起来像这样
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="debug">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="[%d{dd-MMM HH:mm:ss.SSS} %logger{1}.%t %-5level] %msg%n"/>
</Console>
<RollingFile name="DefaultFile" fileName="../logs/app.log"
filePattern="../logs/app-%d{MM-dd-yyyy}-%i.log" bufferedIO="true" bufferedSize="32000" immediateFlush="false">
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
...
</RollingFile>
<Async name="AsyncFile">
<AppenderRef ref="DefaultFile"/>
<LinkedTransferQueue/>
</Async>
<Async name="AsyncConsole">
<AppenderRef ref="Console"/>
<LinkedTransferQueue/>
</Async>
</Appenders>
<logger name="org.hibernate">
<level value="debug" />
</logger>
<Loggers>
<Root level="TRACE">
<AppenderRef ref="AsyncConsole"/>
<AppenderRef ref="AsyncFile"/>
</Root>
<Logger name="org.hibernate.SQL" level="error" />
<!-- Log all JDBC parameters -->
<Logger name="org.hibernate.type" level="error" />
<!-- Log all SQL DDL statements as they are executed -->
<Logger name="org.hibernate.tool.hbm2ddl" level="error" />
<!-- Log the state of all entities (max 20 entities) associated with the session at flush time -->
<Logger name="org.hibernate.pretty" level="error" />
<!-- Log all second-level cache activity -->
<Logger name="org.hibernate.cache" level="error" />
<!-- Log transaction related activity -->
<Logger name="org.hibernate.transaction" level="error" />
<!-- Log all JDBC resource acquisition -->
<Logger name="org.hibernate.jdbc" level="error" />
<!-- Log HQL and SQL ASTs during query parsing -->
<Logger name="org.hibernate.hql.ast.AST" level="error" />
<!-- Log all JAAS authorization requests -->
<Logger name="org.hibernate.secure" level="error" />
<!-- Log everything (a lot of information, but very useful for troubleshooting) -->
<Logger name="org.hibernate" level="error" />
</Loggers>
</Configuration>
干杯
【问题讨论】:
标签: java logging configuration log4j log4j2