-
- ConsoleAppender
-
AsyncAppender
-
FileAppender
-
RollingFileAppender
-
RandomAccessFileAppender
-
RollingRandomAccessFileAppender
控制台输出源是将日志打印到控制台上,开发的时候一般都会配置,以便调试。
-
name:指定Appender的名字。
-
target:SYSTEM_OUT 或 SYSTEM_ERR,一般只设置默认:SYSTEM_OUT。
-
PatternLayout:输出格式,不设置默认为:%m%n。
异步输出。AsyncAppender接受对其他Appender的引用,并使LogEvents在单独的Thread上写入它们。
默认情况下,AsyncAppender使用 java.util.concurrent.ArrayBlockingQueue ,它不需要任何外部库。请注意,多线程应用程序在使用此appender时应小心:阻塞队列容易受到锁争用的影响,并且我们的 测试 表明,当更多线程同时记录时性能可能会变差。考虑使用无锁异步记录器以获得最佳性能。
文件输出源,用于将日志写入到指定的文件,其底层是一个OutputStreamAppender,需要配置输入到哪个位置(例如:D:/logs/mylog.log)
-
name:指定Appender的名字。
-
fileName:指定输出日志的目的文件带全路径的文件名。
-
PatternLayout:输出格式,不设置默认为:%m%n。
RollingFileAppender是一个OutputStreamAppender,它写入fileName参数中指定的File,并根据TriggeringPolicy和RolloverPolicy滚动文件。
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的名字。