我想根据模块名称编写日志文件。 对于前 用户管理模块的一个日志文件和 一个用于产品模块等。
我的项目包结构如下所示;
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
档案。
我知道我可以创建像bellow
这样的记录器<logger name="com.mycompany.service.user" level="INFO">
<AppenderRef ref="AppenderUsers" />
</logger>
<logger name="com.mycompany.controller.user" level="INFO">
<AppenderRef ref="AppenderUsers" />
</logger>
...
但是这样我必须添加这么多记录器。
我不能使用通配符*
或**
或正则表达式来记录这样的名字吗?
<logger name="com.mycompany.*.user" level="INFO">
<AppenderRef ref="AppenderUsers" />
</logger>
或者有没有办法做到这一点?
答案 0 :(得分:4)
最后,我通过编写自定义过滤器插件解决了这个问题。 我使用了Regex过滤器中使用的相同方法。但正则表达式过滤,匹配给定正则表达式与消息内容。但是我编写了一个过滤器来匹配正则表达式和类名。
我在博客文章中对此进行了描述。 http://rohithag.blogspot.com/
答案 1 :(得分:1)
我建议您在log4j2 Jira问题跟踪器中将其作为功能请求提出。