根据关于log4j类的PatternLayout文档,它有以下代码段:
在上面的例子中,转换说明符%-5p意味着日志事件的优先级应该保留为5个字符的宽度。
我只想有一个字符作为日志优先级标识符,比如"DEBUG“变成"D","ERROR”变成"E“等等。
为了实现这一点,我创建了以下PatternLayout:
consoleAppender.setLayout(new PatternLayout("%d{[dd/MM/yyy HH:mm:ss]} :: [%1p] :: %C{1} : %M :: %m%n"));上面的代码给出了以下日志格式:
22/11/2013 09:18:54 : INFO ::RAMJobStore : initialized ::RAMJobStore initialized。
我是不是做错了什么事?文档似乎使这听起来很简单,除非在log4j 1.2.16中这个功能被破坏了。
发布于 2015-07-22 00:45:09
如果使用EnhancedPatternLayout,就会有新的模式令牌来实现这一点:%level{length=1}。
你的模式:
%d{dd/MM/yyy :mm:ss}:%级别{length=1}:%C{1}:%M:%m%%n
此模式的在线测试
发布于 2013-11-22 09:31:14
它没坏。
您正在尝试在一个字符的字段中写入优先级。在您的情况下,优先级的值是"INFO",这是一个四个字母的字符串。
文件上说:
如果数据项大于最小字段宽度,则扩展字段以容纳数据。
因此,您要求在一个字符为1的字段中设置格式,但它扩展到了4。
https://stackoverflow.com/questions/20141258
复制相似问题