我需要帮助在Java Web应用程序中断行并将日志附加到新行。
<PatternLayout pattern="%d{dd/MM/YYYY HH:mm:ss.SSS} [%t] %-5level %logger{36} %msg%n%n"/>
这是我使用的模式。我希望在Linux环境中执行此操作,但%n
无效,只有日志附加到最后一行。
我需要帮助在Java Web应用程序中断行并将日志附加到新行。
<PatternLayout pattern="%d{dd/MM/YYYY HH:mm:ss.SSS} [%t] %-5level %logger{36} %msg%n%n"/>
这是我使用的模式。我希望在Linux环境中执行此操作,但%n
无效,只有日志附加到最后一行。
您是在 Linux 或 Windows 上查看日志文件吗?如果日志文件是由 Linux 编写并在 Windows 上查看的,则使用传统文本编辑器时,新行字符不会在 Windows 上创建新行,因此所有日志都将显示在同一行上。
您可以在自己的模式中使用 \r\n
代替 \n
,或者使用 Windows 中另一个处理 Linux 行分隔符 (\n
) 的文本编辑器(例如 Notepad++)。
我保留日志的模式字符串为
<PatternLayout pattern="%msg"/>
并修改了LogManagement.java文件
private static final Logger LOGGER_OBJECT = LogManager.getLogger(LogManagement.class);
private static final String STRING_DATE_FORMAT = "dd MMM yyyy HH:mm"; //Date & Time format
private static final SimpleDateFormat SIMPLE_DATE_FORMAT_PATTERN = new SimpleDateFormat(STRING_DATE_FORMAT); //Simple format conversion
信息函数中的代码
LOGGER_OBJECT.info("\r\n"); //New Line
LOGGER_OBJECT.info("Log Type\t: INFO"); //Log Type
LOGGER_OBJECT.info("\r\n");
LOGGER_OBJECT.info("Date & Time\t: "+SIMPLE_DATE_FORMAT_PATTERN.format(new Date()));//Current Date & Time
LOGGER_OBJECT.info("\r\n");
当我在Linux中记录数据并在Windows平台上查看时,这个工作正常。
%n%n
,所以添加了两个新行。我唯一收到的警告是由于你使用的日期格式。尝试在你的log4j2.xml配置中使用status="warn"
。 - Mrunal Pagnis\r\n
,现在它可以正常工作了,而不会改变PatternLayout字符串。感谢@xav - Prajwal Bhat