在Spring boot logback-spring.xml中创建自定义日志级别

问题描述 投票:1回答:1

团队,

我想在春季启动时在logback-spring.xml中创建自定义日志级别。就像我们有信息,调试,警告一样,想创建自己的自定义级别。

任何建议?

spring-boot logback spring-logback loggerfactory
1个回答
0
投票

考虑到您正在使用Apache Log4j2库,可以按如下所示添加自定义日志记录级别

如果您需要在Log4j中添加自己的日志记录级别,则可以执行此操作如下。您将必须创建自己的类,该类将扩展从级别,使用Apache Log4j 2自定义日志级别。

public class CustomLog extends Level {
public static final int CUSTOMLOG_INT =DEBUG_INT -10;
public static final Level CustomLogLevel  = new 
  CustomLogLevel(CUSTOMLOG_INT,"CUSTOM_LOG",10);

protected CustomLogLevel(int arg0, String arg1, int arg2) {
     super(arg0, arg1, arg2);

}

/**
 * Checks whether logArgument is "CUSTOM_LOG" level. If yes then returns
 * CUSTOM_LOG}, else calls CustomLogLevel#toLevel(String, Level) passing
 * it Level#DEBUG as the defaultLevel.
 */
public static Level toLevel(String logArgument) {
    if (logArgument != null && logArgument.toUpperCase().equals("CUSTOM_LOG")) {
        return CUSTOM_LOG;
    }
    return (Level) toLevel(logArgument, Level.DEBUG);
}

/**
 * Checks whether val is CustomLogLevel#CUSTOM_LOG_INT. If yes then
 * returns CustomLogLevel#CUSTOM_LOG, else calls
 * CustomLogLevel#toLevel(int, Level) passing it Level#DEBUG as the
 * defaultLevel
 * 
 */
public static Level toLevel(int val) {
    if (val == CUSTOM_LOG_INT) {
        return CUSTOM_LOG;
    }
    return (Level) toLevel(val, Level.DEBUG);
}

/**
 * Checks whether val is CustomLogLevel#CUSTOM_LOG_INT. If yes
 * then returns CustomLogLevel#CUSTOM_LOG, else calls Level#toLevel(int, org.apache.log4j.Level)
 * 
 */
public static Level toLevel(int val, Level defaultLevel) {
    if (val == CUSTOM_LOG_INT) {
        return CUSTOM_LOG;
    }
    return Level.toLevel(val, defaultLevel);
}

/**
 * Checks whether logArgument is "CUSTOM_LOG" level. If yes then returns
 * CustomLogLevel#CUSTOM_LOG, else calls
 * Level#toLevel(java.lang.String, org.apache.log4j.Level)
 * 
 */
public static Level toLevel(String logArgument, Level defaultLevel) {
    if (logArgument != null && logArgument.toUpperCase().equals("CUSTOM_LOG")) {
        return CUSTOM_LOG;
    }
    return Level.toLevel(logArgument, defaultLevel);
}
}
}
© www.soinside.com 2019 - 2024. All rights reserved.