gpt4 book ai didi

java - 使用 Java 而不是 XML 在 Spring 下配置 Logback

转载 作者:行者123 更新时间:2023-12-02 09:41:51 25 4
gpt4 key购买 nike

在 Spring[Boot] 下,如何使用 JavaConfig 或某种基于注释的配置以编程方式配置 Logback。 我希望尽可能避免使用 XML 文件

欢迎举例

我不是在寻找以下内容的链接。我已经有了这些。假设我有这些,我的问题是如何达到这个问题的目标。
不在 Spring 下时如何在 Java 中配置 Lockback
如何使用XML在Spring或Spring Boot下设置Logback

最佳答案

是的。如果您想以编程方式配置,这是可能的。例如,下面的代码对我有用:

import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.FileAppender;
import org.slf4j.LoggerFactory;

public class LoggerUtil {
public static void main(String[] args) {
Logger example1 = createLoggerFor("example1", "example1.log");
Logger example2 = createLoggerFor("example2", "example2.log");
example1.info("test-example1");
example2.info("test-example2");
}

private static Logger createLoggerFor(String string, String file) {
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
PatternLayoutEncoder patternLayoutEncoder = new PatternLayoutEncoder();

patternLayoutEncoder.setPattern("%date %level [%thread] %logger{10} [%file:%line] %msg%n");
patternLayoutEncoder.setContext(loggerContext);
patternLayoutEncoder.start();
FileAppender<ILoggingEvent> fileAppender = new FileAppender<ILoggingEvent>();
fileAppender.setFile(file);
fileAppender.setEncoder(patternLayoutEncoder);
fileAppender.setContext(loggerContext);
fileAppender.start();

Logger logger = (Logger) LoggerFactory.getLogger(string);
logger.addAppender(fileAppender);
logger.setLevel(Level.DEBUG);
logger.setAdditive(false); /* set to true if root should log too */

return logger;
}
}

关于java - 使用 Java 而不是 XML 在 Spring 下配置 Logback,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57014740/

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