中间件内置logger功能

在开发中间件的时候有时候希望日志能强制输出到我们制定的地方而不需要用户关心,这个可以通过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);
    }

猜你喜欢

转载自san-yun.iteye.com/blog/2424024
今日推荐