使用 log4j2 在 log.txt 文件中忽略“\n”换行符
"\n" line break ignored in log.txt file using log4j2
我目前遇到 log4j2 在写入我的日志文件时忽略“\n”的问题。比如使用log4j2登录console,代码如下
log.info("Hello \nWorld");
将输出到控制台:
Hello
World
在我的日志文件 log.txt 中,相同的代码生成:
Hello World
最终忽略“\n”。
我的 log4j2.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} -
%msg%n" />
</Console>
<File name="MonthlyCBK" fileName="${sys:MonthlyCBK}" append="true">
<PatternLayout pattern="%d{MM-dd-yy HH:mm:ss} %-5level %logger{36} -
%msg%n"/>
</File>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="Console" level="info" />
<AppenderRef ref="MonthlyCBK" level="debug"/>
</Root>
</Loggers>
</Configuration>
我是否在我的 log4j2 中遗漏了一个允许在我的文件中换行的选项?还是 log4j2 在写入日志文件时不允许换行?
可以使用printf方法:
logger.printf(Level.INFO, "Hello %n world");
我目前遇到 log4j2 在写入我的日志文件时忽略“\n”的问题。比如使用log4j2登录console,代码如下
log.info("Hello \nWorld");
将输出到控制台:
Hello
World
在我的日志文件 log.txt 中,相同的代码生成:
Hello World
最终忽略“\n”。
我的 log4j2.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} -
%msg%n" />
</Console>
<File name="MonthlyCBK" fileName="${sys:MonthlyCBK}" append="true">
<PatternLayout pattern="%d{MM-dd-yy HH:mm:ss} %-5level %logger{36} -
%msg%n"/>
</File>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="Console" level="info" />
<AppenderRef ref="MonthlyCBK" level="debug"/>
</Root>
</Loggers>
</Configuration>
我是否在我的 log4j2 中遗漏了一个允许在我的文件中换行的选项?还是 log4j2 在写入日志文件时不允许换行?
可以使用printf方法:
logger.printf(Level.INFO, "Hello %n world");