gpt4 book ai didi

java - 通过 xml 配置的 Logback 列表属性

转载 作者:行者123 更新时间:2023-11-29 03:00:23 25 4
gpt4 key购买 nike

我正在编写自己的布局,我希望能够从配置文件中向其传递值列表。

我的布局代码:

public class MyPatternLayout extends PatternLayout {

private ArrayList<String> test;

public ArrayList<String> getTest() {
return test;
}

public void setTest(ArrayList<String> test) {
this.test = test;
}

@Override
public String doLayout(ILoggingEvent event) {
return test.stream().collect(Collectors.joining(", ")); //temporary, for testing purposes only
}
}

配置:

<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="rpost.MyPatternLayout">
<pattern>%date{HH:mm:ss.SSS} [%t] %-5p %c{40}:%L - %m%n</pattern>
<test>value 1</test>
<test>value 2</test>
</layout>
</encoder>
</appender>

<root level="INFO">
<appender-ref ref="STDOUT"/>
</root>
</configuration>

上面的例子不工作——它什么都不打印。

是否可以配置列表属性?怎么做到的?

最佳答案

我找到了以下解决方案:

配置(与问题相同):

<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="rpost.MyPatternLayout">
<pattern>%date{HH:mm:ss.SSS} [%t] %-5p %c{40}:%L - %m%n</pattern>
<test>value 1</test>
<test>value 2</test>
</layout>
</encoder>
</appender>

<root level="INFO">
<appender-ref ref="STDOUT"/>
</root>
</configuration>

Java代码:

public class MyPatternLayout extends PatternLayout {

private List<String> test = new ArrayList<>();

public void addTest(String test) {
this.test.add(test);
}

@Override
public String doLayout(ILoggingEvent event) {
return test.stream().collect(Collectors.joining(", ")); //temporary, for testing purposes only
}
}

关于java - 通过 xml 配置的 Logback 列表属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35385580/

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