Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Log4j2按模块名称分隔日志文件_Java_Logging_Wildcard_Log4j2 - Fatal编程技术网

Java Log4j2按模块名称分隔日志文件

Java Log4j2按模块名称分隔日志文件,java,logging,wildcard,log4j2,Java,Logging,Wildcard,Log4j2,我想根据模块名编写日志文件。 例如。 一个日志文件,用于用户管理模块和 一个用于产品模块等 我的项目包结构如下所示 com.mycompany.service.user com.mycompany.service.product com.mycompany.controller.user com.mycompany.controller.product ... 我想从中写入日志消息 com.mycompany.*.user(com.mycompany.service.user和com.myco

我想根据模块名编写日志文件。 例如。 一个日志文件,用于用户管理模块和 一个用于产品模块等

我的项目包结构如下所示

com.mycompany.service.user
com.mycompany.service.product
com.mycompany.controller.user
com.mycompany.controller.product
...
我想从中写入日志消息
com.mycompany.*.user
(com.mycompany.service.user和com.mycompany.controller.user)到
com.mycompany.user.log
文件, 和
com.mycompany.*.product
com.mycompany.user.log
文件

我知道我可以创造像贝娄这样的伐木工人

<logger name="com.mycompany.service.user" level="INFO">
  <AppenderRef ref="AppenderUsers" />
</logger>
<logger name="com.mycompany.controller.user" level="INFO">
  <AppenderRef ref="AppenderUsers" />
</logger>
...

或者有什么方法可以做到这一点吗?

我建议您在log4j2 Jira问题跟踪程序中将其作为功能请求提出

最后,我通过编写自定义过滤器插件解决了这个问题。 我使用了过滤器中使用的相同方法。但是正则表达式过滤器,将给定的正则表达式与消息内容匹配。但是我已经编写了一个过滤器来匹配正则表达式和类名


我已经在我的博客文章中描述了这一点

感谢您的建议您的博客帖子很有帮助,但您是否曾向log4j2提交功能请求?对于未来的访问者,完整链接为:
<logger name="com.mycompany.*.user" level="INFO">
  <AppenderRef ref="AppenderUsers" />
</logger>