gpt4 book ai didi

java - log4j2 动态变量的默认值

转载 作者:行者123 更新时间:2023-11-30 07:35:09 24 4
gpt4 key购买 nike

我尝试通过 log4j2.xml 为变量 log4j.encoding 定义默认值:

<Properties>
<Property name="log4j.encoding">ISO-8859-15</Property>
</Properties>

我将其用作在运行时解析的变量:

<PatternLayout charset="$${sys:log4j.encoding}" pattern="%msg%n"/>

此配置会导致以下错误:

main WARN Error while converting string [${sys:log4j.encoding}] to type [class java.nio.charset.Charset]. Using default value [null].

但是当我使用非动态变量(即 ${sys:log4j.encoding},注意单个 $)时,该变量在加载配置文件时评估一次,配置成功。

默认值不适用于动态变量,这是预期的行为吗?

详细信息:定义 PatternLayout 的 RollingFile 被多个记录器使用。每次加载记录器之一时都应确定文件的路径,以便每个记录器写入自己的文件。字符集是次要的,尽管我想了解错误消息,因为我的理解有缺陷可能意味着动态更改输出文件也可能会失败。

最佳答案

字符集属性不支持动态值。该属性是不可变的,并在创建模式布局时设置。您是否需要一个 Appender 来支持多个字符集?这将如何运作?

关于java - log4j2 动态变量的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35505204/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com