我正在使用Matlab中的log4j(不是log4j2)。我的附加器之一是CnosoleAppender。日志消息显示在Matlab控制台中,但是,每个日志语句后都有一行新内容。
我为log4附加程序配置了:
log4j.appender.matlabConsole=org.apache.log4j.ConsoleAppender
log4j.appender.matlabConsole.immediateFlush=true
log4j.appender.matlabConsole.encoding=UTF-8
log4j.appender.matlabConsole.layout=org.apache.log4j.PatternLayout
log4j.appender.matlabConsole.layout.ConversionPattern=[%d] %l %p %m%n
log4j.appender.matlabConsole.Threshold = TRACE
我尝试从模式中删除%n
,但是在所有log语句和所有连续语句都收集到一行之后,没有换行符。
文档中有关%n
此转换字符提供的性能几乎与使用不可移植的行分隔符字符串(例如“ \ n”或“ \ r \ n”)相同。因此,这是指定行分隔符的首选方式。
我在Windows上工作,如果我写\n
,则换行符消失。但是我希望日志文件配置在Linux和Windows上都能正常工作。有什么办法可以做到这一点?问题甚至是由Matlab-Java设置引起的还是由系统或log4j配置问题引起的?
编辑: 该问题似乎是由ConsoleAppender / Matlab-Java控制台引起的,因为我还使用了具有%n模式的FileAppender,并且它不包含空行。