美文网首页程序猿代码总结
项目中日志的一个小应用

项目中日志的一个小应用

作者: 丶Zzz | 来源:发表于2016-11-21 11:27 被阅读0次

需求

项目中的Maven中已经添加了Logger的依赖,现在想要对版块中的消息日志在本地记录。但是其他版块依赖中已经做了looger配置(Looger的输出文件,输出内容,级别之类的),在不影响其他模块的基础之上,决定采用代码动态指定配置,生成自用的logger对象。

解决方案:

直接上代码

   LoggerContext loggerContext = (LoggerContext)LoggerFactory.getILoggerFactory();
    Logger logger = loggerContext.getLogger(className); 
  
   //定义Appender
    logger.detachAndStopAllAppenders();
    RollingFileAppender appender = new RollingFileAppender();
    appender.setFile(filePattern);//设置文件名字
   
    //Appender的的属性配置  文件名字、位置、时间间隔
    TimeBasedRollingPolicy policy = new TimeBasedRollingPolicy();
    policy.setContext(loggerContext);
    policy.setMaxHistory(5);
    policy.setFileNamePattern(filePattern + "_%d{yyyy-MM-dd}");
    policy.setParent(appender);
    policy.start();
   
   //日志格式化
    PatternLayoutEncoder encoder = new PatternLayoutEncoder();
    encoder.setContext(loggerContext);
    encoder.setPattern(messagePattern);
    encoder.start();
   
    //启动Appender
    appender.setRollingPolicy(policy);
    appender.setContext(loggerContext);
    appender.setEncoder(encoder);
    appender.start();

    //将Appender加入logger
    logger.addAppender(appender);
    logger.setLevel(level);
    logger.setAdditive(false);//是否将消息传递给父节点
    return logger;

说明

上述代码主要分为三个部分:
-Logger对象的生成,及Logger对象上下文、appender、pattern指定
-Appender对象生成(动态日志文件)
-Appender对象的属性配置(位置,时间,回滚日志名字格式,日志保留的最大天数)
-日志文件中的消息格式

问题

  • looger.setAdditive();默认值为true,由于其他版块已经有Logger对象,若不想让该信息再输出到父类,需要指定为false;

相关文章

  • Log4J

    日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录。日志...

  • 最详细的Log4J使用教程

    日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录。在a...

  • 项目中日志的一个小应用

    需求 项目中的Maven中已经添加了Logger的依赖,现在想要对版块中的消息日志在本地记录。但是其他版块依赖中已...

  • Java中的日志(log4j,SLF4J,SLF4J2都是什么玩

    Java中的日志 Java中的日志对于一个应用来说有着至关重要的作用。 日志中的抽象层 日志中的抽象层的作用是提供...

  • log4j2 日志动态记录git参数${git.commit.i

    maven项目(非springboot项目)日志记录版本 之前做过一个项目,java项目的log4j日志管理中,记...

  • k8s日志收集实战

    简介 本文主要介绍在k8s中收集应用的日志方案,应用运行中日志,一般情况下都需要收集存储到一个集中的日志管理系统中...

  • 【C++ 设计模式】3.单例模式

    单例模式:一种创建型设计模式 应用场景:日志系统 。一个项目中应该只有一个日志系统,则应当确保日志对象只能被创建一...

  • Log4j的随行笔记

    最近项目中碰到一个问题, 需要指定某个类中的所有级别日志输出至单独的日志文件中,且别的日志文件中没有这个类的日志信...

  • 通过Adb命令抓取手机Log

    在项目开发中我们经常会遇到应用突然崩溃的问题,如果AndroidStudio上有Log日志,我们能很快找到Bug并...

  • Linux高级篇之自定义日志服务

    日志管理服务应用实例 在/etc/rsyslog.conf 中添加一个日志文件 /var/log/hsp.log ...

网友评论

    本文标题:项目中日志的一个小应用

    本文链接:https://www.haomeiwen.com/subject/fscupttx.html