目前我有这样的东西:
%d{时:分:秒.秒}| %-5.5便士|%-15.15吨|%-30.70摄氏度。%-5.20摄氏度:%-3.5升|%消息%n
但这会使full.class.Name.method:行的长度不同--有可能使clss.method:行的长度固定吗?
我想要这样东西
%-60.60CML(但这当然不起作用)
我想让所有日志行上的calss.method.line都有相同的长度。(这样实际的消息就在同一个地方开始了)
这可能吗?
其他人说,有没有可能用一个转换说明符格式化多个转换字符?
https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.html
每个转换说明符都以百分号(%)开头,后跟可选的格式修饰符和转换字符er。转换字符er指定数据的类型
当模式解析器读取转换字符er时,它知道何时到达转换说明符的末尾。
它现在写的是多个转换字符,所以也许这是根本不可能的?
正如@Remko Popma所解释的,我想要的现在是不可能的:
不,每个修改器只适用于一个转换。但是Log4j可以添加一个新的转换器,这意味着你想要的。你可以在邮件列表或问题跟踪器上推荐这样的新转换器。
我创建了问题:https://issues.apache.org/jira/browse/LOG4J2-2339
2条答案
按热度按时间qnyhuwrf1#
抱歉,我在问题中没有发现Log4j是1.x,此答案适用于Log4j 2.x。以下答案仅供可能需要它的人使用:
您可以使用
style{pattern}{ANSI style}
转换模式,只需将%-30.70C.%-5.20M:%-3.5L
更改为%-60style{%-30.70C.%-5.20M:%-3.5L}
即可。简单说明一下,用
%-60style{replace-your-pattern-here}
把你想格式化的图案部分包起来,然后根据你的情况调整宽度值(这里是60个字符宽度),如果你想彩色输出,只要在style{pattern}
后面加上省略的{ANSI style}
即可。下面是Log4j2文档:https://logging.apache.org/log4j/2.x/manual/layouts.html#Patterns
nqwrtyyt2#
基于@Remko-Popma的帮助
https://issues.apache.org/jira/browse/LOG4J2-2339
以下是对我有效的方法:
}