我正在使用Log4j 2,而我正在使用4.0.4版本的datanucleus。 当我运行我的应用程序时,它无法生成datanucleus日志。 使用Log4j-1.x可以很好地处理Datanucleus日志,但是当我将Log4j-1.x切换到2.x时,我无法生成datanucleus日志。
Log4j2 XML是:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="FATAL" name="TestApp" packages="" monitorInterval="60">
<Appenders>
<RollingFile name="datanucleus"
fileName="/Test/logs/datanucleus-${sys:logging.log4j}.log"
filePattern="/Test/logs/logs/$${date:yyyy-MM-dd}/datanucleus-${sys:logging.log4j}-%d{yyyy-MM-dd-HH}.log.gz"
ignoreExceptions="false">
<PatternLayout>
<Pattern>%d{yyyy-MM-dd HH:mm:ss,SSS} %5p [%t] %C %M:%L - %m%n</Pattern>
</PatternLayout>
<TimeBasedTriggeringPolicy interval="24" modulate="true" />
</RollingFile>
<Console name="STDOUT" target="SYSTEM_OUT" ignoreExceptions="false">
<PatternLayout pattern="%m%n" />
</Console>
<Failover name="Failover" primary="RollingFile">
<Failovers>
<AppenderRef ref="STDOUT" />
</Failovers>
</Failover>
</Appenders>
<Loggers>
<Logger name="DataNucleus.Datastore" level="debug" additivity="false">
<AppenderRef ref="datanucleus" />
</Logger>
<Logger name="DataNucleus.Cache" level="debug" additivity="false">
<AppenderRef ref="datanucleus" />
</Logger>
<Logger name="DataNucleus.Persistence" level="debug" additivity="false">
<AppenderRef ref="datanucleus" />
</Logger>
<Logger name="DataNucleus.Connection" level="debug" additivity="false">
<AppenderRef ref="datanucleus" />
</Logger>
<Logger name="DataNucleus.Transaction" level="debug" additivity="false">
<AppenderRef ref="datanucleus" />
</Logger>
<Logger name="DataNucleus.Lifecycle" level="debug" additivity="false">
<AppenderRef ref="datanucleus" />
</Logger>
<Logger name="DataNucleus.MetaData" level="debug" additivity="false">
<AppenderRef ref="datanucleus" />
</Logger>
<Logger name="org.datanucleus" level="debug" additivity="false">
<AppenderRef ref="datanucleus" />
</Logger>
<Root level="debug">
<AppenderRef ref="STDOUT" />
</Root>
</Loggers>
</Configuration>
请帮助我......
使用Log4j 1.2它对我有用,但是当我尝试使用Log4j 2.3时,除了DataNucleus日志之外,还会生成其他日志。以下是我的依赖项:
<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>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
<version>2.3</version>
</dependency>
答案 0 :(得分:0)
首先要尝试的是打开Log4j 2内部调试。您可以将配置文件开头的<Configuration status="FATAL" ...
替换为<Configuration status="TRACE"...
来执行此操作。这将向控制台显示Log4j 2内部调试消息。如果您在此处看到任何错误,可能会帮助您解决问题。
常见问题是依赖性。您的应用程序是否使用Log4j-1.2 API?如果是这样,您需要将log4j-1.2-api-2.3.jar
桥接添加到依赖项。该桥将您的应用程序的所有调用路由到log4j-1.2到Log4j 2实现。
最后,请确保从类路径中删除log4j-1.2.x.jar
!