log4j类似于记录的log

问题描述

| 我希望log4j产生类似记录的输出。 我不想要的:
1    INFO  ... - User login: Agostino
120  INFO  ... - Start process: 0,elements to process 100
我想要的是:
1    INFO ... - User: Agostino,processid:null,elements: null,message: login
1    INFO ... - User: Agostino,processid:0,elements: 100,message: start process
我认为我应该使用ObjectRenderer,并且由于许多数据包含在我已经拥有的对象中,所以我认为是这样的:
public class MyMessage {
    Object myContextObject; //**this** contains user,processid,elements
    String message;
}
我在这里所做的是传递一个\“ context object \”,该对象提供字段以及消息字符串。然后,ObjectRenderer将基于myContextObject类型进行格式化。 现在我想知道是否在设计ObjectRenderer时考虑了这样的事情。 如果这是ObjectRenderer的常规用法,则可能他们会提供 阻止创建伪包装MyMessage的log(String message,Object myContextObject)。     

解决方法

作为
ObjectRenderer
的替代方法,您可能希望研究log4j \
PatternLayout
,可以通过编程或配置方式对其进行配置: http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.html 例如,您可以执行以下操作(只是一个任意示例):
<appender name=\"STDOUT\" class=\"org.apache.log4j.ConsoleAppender\">
  <layout class=\"org.apache.log4j.PatternLayout\">
    <param name=\"ConversionPattern\" value=\"%d %-5p (%-35F:%-4L) - %m%n\"/>
  </layout>
</appender>
一旦确定了这一点,就可以使用
%X{clientNumber}
模式通过MDC从自定义类中检索数据 http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/MDC.html     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...