在Log4j2 appenders中,使用contextPath作为文件名是有用的,如下所示:filename="/logs/${web:contextPath}.log
。这意味着一个日志配置可以在多个web应用中重用。
然而,如果一个contextPath是/foo/bar
,这将创建文件/logs/foo/bar.log
。是否有办法用_
替换上下文路径中的/
,以便文件名为/logs/foo_bar.log
?
对我来说,这比将上下文路径结构直接复制到日志中更有用。我已经阅读了StringSubstitution文档,并且无论如何都看不到要这样做,但如果有人有解决方案,那将非常有帮助!
我不认为有一种方法可以做到这一点。但是您可以轻松地创建一个自定义查找来完成此工作。
首先创建WebLookup的子类,并在返回的字符串中将'/'字符替换为下划线。
创建自定义Log4j2查找的示例:请参阅手册页或此问题。