Java的标准日志 (2)

格式化器顾名思义是用来格式化记录的,看需要生成什么样格式的记录,我的话就在日志前加点东西就好了。也是需要实现format接口的,当然记录的格式化操作是交给处理器的


public class loggerTest { private static final Logger myLogger = Logger.getLogger("com.howl.logger.loggerTest");; public static void main(String[] args) throws IOException { // 格式化器 Formatter formatter = new Formatter() { @Override public String format(LogRecord record) { return "这里是格式化器: "+ record.getMessage() + "\n\n"; } }; ConsoleHandler consoleHandler = new ConsoleHandler(); consoleHandler.setFormatter(formatter); myLogger.addHandler(consoleHandler); myLogger.info("i am HAHA"); } } // 控制台输出 // 这里是格式化器: i am HAHA // // 七月 23, 2021 9:52:58 下午 logging.loggerTest main // 信息: i am HAHA





3. java日志的发展史

Apache 的 log4j 日志框架最早出现(可用配置文件管理日志,并动态加载)

java1.4 后面才添加的标准日志库 java.util.logging(JUL)

Apache 推出日志门面Apache Commons Logging(JCL,提供了一套日志接口,兼容上面二者)

再然后 JCL 的作者弄了个新的日志门面 slf4j,并提供了其组件实现 logback

最后 Apache 重写log4j,推出 log4j2

因为 slf4j 门面后面才出现,所以推出了各种补丁使其兼容 JCL 的接口,看着好复杂


日志门面 组件实现
JCL、slf4j   log4j、log4j、logback、JUL  

使用框架需选一个日志门面,然后再选择个门面的实现,不选择实现的话默认使用 java 的标准库







4. 项目中为什么不使用JUL

笔者还没在项目中实际用过日志框架,体会到的不多,目前只知道 JUL 的配置管理器实属败笔~ 。等笔者搭完这次项目用到的ELK之后再慢慢体会把

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zysfpw.html