我已经看过有关此事的现有问题,但我仍无法解决问题。这是我的POM,包含所有log4j2依赖项:
<dependencyManagement>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-bom</artifactId>
<version>2.7</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</dependency>
我的log4j2.properties
文件的结构如下:
name=PropertiesConfig
property.filename = logs
appenders = console, file
appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
rootLogger.level = debug
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT
appender.file.type = File
appender.file.name = LOGFILE
appender.file.fileName=target/myLog.log
appender.file.layout.type=PatternLayout
appender.file.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
最后,我在我的测试类中创建了记录器,如下所示:
private Logger LOG = LogManager.getLogger(TestClass.class.getName());
虽然我可以将所有日志输出到控制台,但我只返回/ target下的空文件(如指定的那样)。
你能帮忙吗?你觉得我的属性文件中有什么根本错误吗?谢谢,
予。
答案 0 :(得分:1)
所以,我设法将日志输出到文件和控制台:
appender.file.type = File
appender.file.name = file
appender.file.fileName=target/myLog.log
appender.file.layout.type=PatternLayout
appender.file.layout.pattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n
appender.out.type = Console
appender.out.name = out
appender.out.layout.type = PatternLayout
appender.out.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
rootLogger.level = all
rootLogger.appenderRef.file.ref = file
rootLogger.appenderRef.file.ref = out
答案 1 :(得分:0)
对我来说,当我更正enum class Color {
@Keep RED,
@Keep GREEN,
@Keep BLUE
}
的{{1}}键中的软件包名称时,这里提到的确切问题已解决。
示例:
logger.file.name
答案 2 :(得分:0)
空的日志文件表明配置文件有问题。就我而言,我的日志级别无效。例如,我有:
<Loggers>
<Root level="fine">
<AppenderRef ref="Console" />
<AppenderRef ref="RollingFile" />
</Root>
但是 fine
不是有效的标准级别,当我将其更改为 info
时它起作用了。如 documentation 所述,日志级别应该是以下级别之一: