Log4j:仅记录消息字符串,不记录 className 和其他详细信息
Posted
技术标签:
【中文标题】Log4j:仅记录消息字符串,不记录 className 和其他详细信息【英文标题】:Log4j: Log only message string without logging className and other details 【发布时间】:2018-12-12 07:44:00 【问题描述】:我有一个 java 应用程序,我正在使用 log4j2。 我只想记录日志消息而不记录类名、日志级别、时间戳等内容。 我确实看到了一些关于自定义附加程序等的建议。但是是否有更简单的方法可以通过修改默认配置来实现这一点?
例子:
log.info(" Hi This is a log message");
所需的日志语句
Hi This is a log message
【问题讨论】:
显示你的日志信息,让我知道你想要的模式 感谢您的回复。用一个例子编辑 【参考方案1】:你必须更改配置文件log4j.xml
该文件中需要更改的元素是pattern
:
如果您使用的是log4j.properties
,请更改相应的元素。
模式元素示例:
<PatternLayout pattern="%d [%p] %c %m%n"/>
这里 d id 代表日期p 代表优先级c 代表班级名称 m 来自消息n 来自分隔符
如果您不想要任何东西,请从 pattern
条目中删除。
根据您的要求修改
<PatternLayout pattern=" %m%n"/>
【讨论】:
谢谢。目前项目中没有 log4j.xml 文件。我应该创建一个只有这一行的 -**<PatternLayout pattern="%m%n"/>**
,在此之前检查文件 log4j.properties 是否存在
谢谢。我怎样才能只为给定的班级做到这一点?而不是整个项目
是的,但是您需要在配置中再添加 1 个附加程序并指定包,例如 log4j.logger.foo.bar.pacakge.Class=DEBUG, myappender
log4j.additivity.foo.pacakge.Class=false
抱歉没有收到最后一条评论以上是关于Log4j:仅记录消息字符串,不记录 className 和其他详细信息的主要内容,如果未能解决你的问题,请参考以下文章