写点什么

Log4j2 的 Appenders 配置详解,MySQL 数据库

作者:MySQL神话
  • 2021 年 11 月 27 日
  • 本文字数:1289 字

    阅读完需:约 4 分钟

  • name:指定 Appender 的名字。

  • target:SYSTEM_OUT 或 SYSTEM_ERR,一般只设置默认:SYSTEM_OUT。

  • PatternLayout:输出格式,不设置默认为:%m%n。


AsyncAppender




异步输出。AsyncAppender 接受对其他 Appender 的引用,并使 LogEvents 在单独的 Thread 上写入它们。


默认情况下,AsyncAppender 使用 java.util.concurrent.ArrayBlockingQueue ,它不需要任何外部库。请注意,多线程应用程序在使用此 appender 时应小心:阻塞队列容易受到锁争用的影响,并且我们的 测试 表明,当更多线程同时记录时性能可能会变差。考虑使用无锁异步记录器以获得最佳性能。


FileAppender




文件输出源,用于将日志写入到指定的文件,其底层是一个 OutputStreamAppender,需要配置输入到哪个位置(例如:D:/logs/mylog.log)


  • name:指定 Appender 的名字。

  • fileName:指定输出日志的目的文件带全路径的文件名。

  • PatternLayout:输出格式,不设置默认为:%m%n。


RollingFileAppender




RollingFileAppender 是一个 OutputStreamAppender,它写入 fileName 参数中指定的 File,并根据 TriggeringPolicy 和 RolloverPolicy 滚动文件。


RandomAccessFileAppender




RandomAccessFileAppender 类似于标准的 FileAppender, 除了它总是被缓冲(这不能被关闭),并且在内部它使用 ByteBuffer + RandomAccessFile 而不是 BufferedOutputStream。与 FileAppender 相比,我们在测量中看到“bufferedIO = true”,性能提升了 20-200% 。


RollingRandomAccessFileAppender




RollingRandomAccessFileAppender 类似于标准的 RollingFileAppender, 除了它总是被缓冲(这不能被关闭),并且在内部它使用ByteBuffer + RandomAccessFile 而不是BufferedOutputStream。与 RollingFileAppender 相比,我们在测量中看到“bufferedIO = true”,性能提升了 20-200%。RollingRandomAccessFileAppender 写入 fileName 参数中指定的文件,并根据 TriggeringPolicy 和 RolloverPolicy 滚动文件。


RollingRandomAccessFile: 该输出源也是写入到文件,不同的是比 File 更加强大,可以指定当文件达到一定大小(如 20MB)时,另起一个文件继续写入日志,另起一个文件就涉及到新文件的名字命名规则,因此需要配置文件命名规则。这种方式更加实用,因为你不可能一直往一个文件中写,如果一直写,文件过大,打开就会卡死,也不便于查找日志。


  • name:指定 Appender 的名字。

  • fileName 指定当前日志文件的位置和文件名称

  • filePattern 指定当发生 Rolling 时,文件的转移和重命名规则

  • immediateFlush 设置为 true 时 - 默认值,每次写入后都会进行刷新。这将保证数据写入磁盘,但可能会影响性能。

  • bufferSize 缓冲区大小,默认为 262,144 字节(256 * 1024)。

最后

![腾讯 T3 大牛总结的 500 页 MySQL 实战笔记意外爆火,P8 看了直呼内行](https://upload-images.jianshu.io/upload_images/24616006-c3a6fe6ac91b02e1.png?imageMogr2/auto-orient/str


《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享


ip%7CimageView2/2/w/1240)



本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

用户头像

MySQL神话

关注

还未添加个人签名 2021.11.12 加入

还未添加个人简介

评论

发布
暂无评论
Log4j2的Appenders配置详解,MySQL数据库