【发布时间】:2015-11-23 13:37:36
【问题描述】:
我在我的 Web 应用程序中配置了 log4j2,它将调试/信息消息记录到控制台。我想使用记录器将每个 http 请求中收到的特定字段写入新文件。我知道将文件附加程序添加到现有的 log4j2.xml 文件会写入配置日志记录的所有日志消息,但我只想使用这个新记录器来写入特定字段。
我想滚动文件附加程序会有所帮助,它为每个请求创建一个新文件并保存作为该请求的一部分接收到的一些输入字段。
谢谢。
【问题讨论】:
-
你能指出到底是什么仍然困扰着你吗?制作一个单独的记录器或使用哪个附加程序?要不然是啥?我对这个问题有点困惑,抱歉。
-
我尝试添加滚动文件附加程序,但它会将所有日志消息添加到文件中。我无法弄清楚如何配置此附加程序以仅创建一个包含我想要记录的字段的文件,而不是将所有调试/信息等日志写入此文件。我可能需要两个记录器实例,一个是通用的,一个是特定的。希望这能说明问题
-
啊,好的。是的,您需要创建另一个记录器实例。例如
Logger fieldLogger = LogManager.getLogger("FIELDLOG");然后您可以在配置中引用该记录器并向其添加单独的附加程序。 -
是的..这就是我打算做的。关于如何配置 xml 为每个传入请求滚动一个新文件的任何想法,这是对控制器的休息调用。谢谢
-
@Fildor 如果您可以将其发布为答案,我会接受您之前的评论。因为这可以满足我的大部分需求,即在同一个文件中有多个记录器实例。