ホームページ  >  記事  >  Java  >  Javaコードを使用してログバック構成を記述する方法

Javaコードを使用してログバック構成を記述する方法

无忌哥哥
无忌哥哥オリジナル
2018-07-19 10:19:581867ブラウズ

ログを直接出力し、ログを固定の場所に収集できる jar パッケージを他のユーザーに提供します。現在、ほとんどの場合、このファイルが使用されていると、競合が発生する可能性があります (もちろん他の名前です)。ファイルをロードする必要がないようにするには、次のように Java で構成を直接記述します:

public class SecurityLoggerFactory {

    private static final String logPath = "/export/Logs/securityLog/securityLog.log";
    private static final String logPathHistory = "/export/Logs/securityLog/securityLog.log.%d";
    private static Logger logger = null;

    public static Logger getLogger(){
        return logger;
    }

    /**
     * 构造Logger
     * 设置路径
     * 设置滚动方式
     */
    static {
        LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
        //loggerContext.reset();
        RollingFileAppender<ILoggingEvent> rollingFileAppender = new RollingFileAppender<ILoggingEvent>();
        rollingFileAppender.setContext(loggerContext);
        rollingFileAppender.setAppend(true);
        rollingFileAppender.setName("jdSecurityLogAppender");
        rollingFileAppender.setFile(logPath);

        TimeBasedRollingPolicy rollingPolicy = new TimeBasedRollingPolicy<>();
        rollingPolicy.setFileNamePattern(logPathHistory);
        rollingPolicy.setMaxHistory(10);
        rollingPolicy.setContext(loggerContext);
        rollingPolicy.setParent(rollingFileAppender);
        rollingPolicy.start();
        rollingFileAppender.setRollingPolicy(rollingPolicy);

        PatternLayoutEncoder encoder = new PatternLayoutEncoder();
        encoder.setPattern("%msg%n");
        encoder.setCharset(Charset.forName("UTF-8"));
        encoder.setContext(loggerContext);
        encoder.start();
        rollingFileAppender.setEncoder(encoder);

        rollingFileAppender.start();

        ch.qos.logback.classic.Logger rootLogger = loggerContext.getLogger("securityLogLogger");
        rootLogger.setLevel(Level.INFO);
        rootLogger.addAppender(rollingFileAppender);
        logger = rootLogger;
    }

    public static void main(String[] args) {
        SecurityLoggerFactory.getLogger().info("this is text log.");
    }
}

クライアントは、SecurityLoggerFactory.getLogger().info() を直接呼び出すことで、関連するログを出力できます。ログはコンソールに出力されるほか、指定したファイルにも出力されます。

注:

ファイル パスは Linux パスです。Windows での実行時にファイルを生成できない場合は、c:/securitylog/securitylog.log などの Windows パスを使用する必要があります。

以上がJavaコードを使用してログバック構成を記述する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。