Java Apache Commons日志记录-新行字符

Java Apache Commons日志记录-新行字符,java,apache-commons-logging,Java,Apache Commons Logging,我们在应用程序中使用ApacheCommons日志记录来满足所有日志记录需求。 本周出现了一个有趣的用例,我对此有疑问。 我们开始接收来自客户端的修复消息,其中修复消息中的特定字段是根据我们客户端拥有的应用程序上的自由格式文本区域中的值填充的。客户可以输入他们想要的任何文本,包括特殊字符和新行等 我们将收到的修复消息记录回日志,但当我们收到包含此标记(其中包含新行字符)的修复消息时,在记录新行字符之前,只会更新修复消息的一部分。是否有必要告诉日志框架忽略新行字符并记录整个字符串,无论它是否包含新

我们在应用程序中使用ApacheCommons日志记录来满足所有日志记录需求。 本周出现了一个有趣的用例,我对此有疑问。 我们开始接收来自客户端的修复消息,其中修复消息中的特定字段是根据我们客户端拥有的应用程序上的自由格式文本区域中的值填充的。客户可以输入他们想要的任何文本,包括特殊字符和新行等


我们将收到的修复消息记录回日志,但当我们收到包含此标记(其中包含新行字符)的修复消息时,在记录新行字符之前,只会更新修复消息的一部分。是否有必要告诉日志框架忽略新行字符并记录整个字符串,无论它是否包含新行字符?

您确定消息没有记录在新行上吗?我们做了类似的事情,新的线路被记录下来,没有任何额外的配置。您是否在日志中搜索这些行以查看它们?我这样做是因为它们会显示在新行上,因此不会显示在grep的输出中,除非您在grep语句中添加“-a 5”(或您希望在后面看到多少行)标志,以便在匹配的行之后看到新行。

感谢您的回复,是的,它会记录在单独的行上,但我希望我们可以将它记录在1行上。您的应用程序可以接受这种行为吗?我明白了,是的,这对我们来说是可以接受的,因为带有新行的日志输出仅用于调试。但我可以看出,如果将日志用于分析,它将多么有用。我知道这是代码中的额外工作,但您是否考虑过在登录之前用非换行符字符串(如“\\n”)替换换行符,以及在阅读日志进行分析时反转此替换?是的,我也这么想。可能值得扩展我们用来为所有日志语句删除新行字符的当前appender