【问题标题】:Log4j: Log only message string without logging className and other detailsLog4j:仅记录消息字符串,不记录 className 和其他详细信息
【发布时间】:2018-12-12 07:44:00
【问题描述】:

我有一个 java 应用程序,我正在使用 log4j2。 我只想记录日志消息而不记录类名、日志级别、时间戳等内容。 我确实看到了一些关于自定义附加程序等的建议。但是是否有更简单的方法可以通过修改默认配置来实现这一点?

例子:

log.info(" Hi This is a log message");

所需的日志语句

Hi This is a log message

【问题讨论】:

  • 显示你的日志信息,让我知道你想要的模式
  • 感谢您的回复。用一个例子编辑

标签: log4j2


【解决方案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 文件。我应该创建一个只有这一行的 -
  • 是的,将其添加到 src 文件夹中并仅保留 **&lt;PatternLayout pattern="%m%n"/&gt;**,在此之前检查文件 log4j.properties 是否存在
  • 谢谢。我怎样才能只为给定的班级做到这一点?而不是整个项目
  • 是的,但是您需要在配置中再添加 1 个附加程序并指定包,例如 log4j.logger.foo.bar.pacakge.Class=DEBUG, myappender log4j.additivity.foo.pacakge.Class=false
  • 抱歉没有收到最后一条评论
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多