欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

中间件内置logger功能

程序员文章站 2023-12-29 14:54:58
...
在开发中间件的时候有时候希望日志能强制输出到我们制定的地方而不需要用户关心,这个可以通过JAVA API的方式实现

  static public final Logger log = new LoggerContext().getLogger(ClientImpl.class);

    private static void initLog() throws Exception {
        // 使用logback初始化
        final String logPath = LocalConfigInfoProcessor.getLogFile();
        System.out.println("jasmine client log path : " + new File(logPath).getAbsolutePath());

        RollingFileAppender appender = new RollingFileAppender();
        appender.setContext(log.getLoggerContext());
        appender.setAppend(true);
        appender.setFile(logPath);

        TimeBasedRollingPolicy rollingPolicy = new TimeBasedRollingPolicy();
        rollingPolicy.setContext(log.getLoggerContext());
        rollingPolicy.setFileNamePattern(LocalConfigInfoProcessor.logRoot + File.separator
                + "jasmine-client-%d{yyyy-MM-dd}.log");
        rollingPolicy.setMaxHistory(30);
        rollingPolicy.setParent(appender);
        rollingPolicy.start();
        appender.setRollingPolicy(rollingPolicy);

        PatternLayoutEncoder encoder = new PatternLayoutEncoder();
        encoder.setContext(log.getLoggerContext());
        encoder.setPattern("%date{ISO8601} %-5level [%thread] %logger{32} - [%X{uid}] [%X{coeus.uid}] %message%n");
        encoder.start();
        appender.setEncoder(encoder);

        appender.start();

        log.setLevel(Level.INFO);
        log.setAdditive(false);
        log.addAppender(appender);
    }

上一篇:

下一篇: