appenders

Log4j Appenders provides configuration for logging such as console, file, database etc. Below image shows the log4j Appender class hierarchy.

Log4j Appenders提供用于日志记录的配置,例如控制台,文件,数据库等。下图显示了log4j Appender类的层次结构。

log4j Appender (log4j Appender)

This is the base of log4j Appenders that defines the methods to implement by an appender.

这是log4j Appenders的基础,它定义了由附加程序实现的方法。

log4j Appender骨架 (log4j AppenderSkeleton)

This class provides the code for common functionality, such as support for threshold filtering and support for general filters. This is the base implementation that is extended by all other appenders such as JDBCAppender, AsyncAppender, ConsoleAppender etc. It has only one abstract method append(LoggingEvent event) that is required to be implemented by all appenders. We can write our own custom appender by implementing this method.

此类提供了用于通用功能的代码,例如,支持阈值过滤和支持常规过滤器。 这是所有其他附加程序(例如JDBCAppenderAsyncAppenderConsoleAppender等)扩展的基本实现。它只有一个抽象方法append(LoggingEvent event) ,所有附加程序都需要实现。 通过实现此方法,我们可以编写自己的自定义追加程序。

常用的log4j Appenders (Commonly used log4j Appenders)

Some of the most commonly used appenders are:

一些最常用的附加器是:

  • ConsoleAppender: ConsoleAppender appends log events to System.out or System.err using a layout specified by the user. The default target is System.out. It’s good for debugging purposes, but not much beneficial to use in production environment.ConsoleAppender :ConsoleAppender使用用户指定的布局将日志事件追加到System.out或System.err。 默认目标是System.out。 这对于调试目的很有用,但是在生产环境中使用却没有太大好处。
  • RollingFileAppender, DailyRollingFileAppender: These are the most widely used appenders that provide support to write logs to file. RollingFileAppender is used to limit the log file size and number of backup files to keep. DailyRollingFileAppender is used to log into files on date basis. However DailyRollingFileAppender has been observed to exhibit synchronization issues and data loss and not recommended to use.RollingFileAppenderDailyRollingFileAppender :这些是使用最广泛的附加程序,提供了将日志写入文件的支持。 RollingFileAppender用于限制日志文件的大小和要保留的备份文件的数量。 DailyRollingFileAppender用于按日期登录文件。 但是,发现DailyRollingFileAppender会出现同步问题和数据丢失,因此不建议使用。
  • JDBCAppender: The JDBCAppender provides for sending log events to a database. Each append call adds to an ArrayList buffer. When the buffer is filled each log event is placed in a sql statement (configurable) and executed. BufferSize, db URL, User, & Password are configurable options in the standard log4j ways.JDBCAppender :JDBCAppender提供了将日志事件发送到数据库的功能。 每个追加调用将添加到ArrayList缓冲区。 当缓冲区已满时,每个日志事件都将放置在sql语句(可配置)中并执行。 BufferSize,db URL,用户和密码是标准log4j方式中的可配置选项。
  • AsyncAppender: The AsyncAppender lets users log events asynchronously. The AsyncAppender will collect the events sent to it and then dispatch them to all the appenders that are attached to it. You can attach multiple appenders to an AsyncAppender. Note that we can configure it only through XML based i.e DOMConfigurator. This is useful when you are generating a lot of logs and don’t care if they are being logged instantly. There are chances of logs getting lost incase server crash. The AsyncAppender uses a separate thread to serve the events in its buffer.AsyncAppender :AsyncAppender允许用户异步记录事件。 AsyncAppender将收集发送给它的事件,然后将它们分派到附加到它的所有追加程序。 您可以将多个附加程序附加到AsyncAppender。 注意,我们只能通过基于XML的DOMConfigurator对其进行配置。 当您生成大量日志并且不关心它们是否被立即记录时,这很有用。 万一服务器崩溃,日志很可能会丢失。 AsyncAppender使用单独的线程在其缓冲区中提供事件。
  • JMSAppender: A simple appender that publishes events to a JMS Topic. The events are serialized and transmitted as JMS message type ObjectMessage.JMSAppender :一个简单的附加程序,将事件发布到JMS主题。 事件被序列化并作为JMS消息类型ObjectMessage传输。

Log4j Appenders XML配置 (Log4j Appenders XML Configuration)

Below is the XML based configuration of commonly used ConsoleAppender and RollingFileAppender classes.

以下是常用的ConsoleAppender和RollingFileAppender类的基于XML的配置。

<!-- console appender -->
<appender name="console" class="org.apache.log4j.ConsoleAppender"><param name="Target" value="System.out" /><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%-5p %c{1} - %m%n" /></layout>
</appender><!-- rolling file appender -->
<appender name="file" class="org.apache.log4j.RollingFileAppender"><param name="File" value="logs/main.log" /><param name="Append" value="true" /><param name="ImmediateFlush" value="true" /><param name="MaxFileSize" value="10MB" /><param name="MaxBackupIndex" value="5" /><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d %d{Z} [%t] %-5p (%F:%L) - %m%n" /></layout>
</appender>

You can check the appender classes code to find out the parameters you can configure. For example in JDBCAppender you can configure databaseURL, databaseUser, databasePassword etc.

您可以检查附加程序类代码以找出可以配置的参数。 例如,在JDBCAppender中,您可以配置databaseURL,databaseUser,databasePassword等。

Log4j Appender属性配置 (Log4j Appender Properties Configuration)

A simple example showing appenders configuration through property file. It’s defining all the above xml based configuration.

一个简单的示例,通过属性文件显示附加程序配置。 它定义了以上所有基于xml的配置。

#Define console appender
log4j.appender.console=org.apache.log4j.ConsoleAppender
logrj.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-5p %c{1} - %m%n#Define rolling file appender
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=logs/main.log
log4j.appender.file.Append=true
log4j.appender.file.ImmediateFlush=true
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=5
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d %d{Z} [%t] %-5p (%F:%L) - %m%n

That’s all for a quick roundup on log4j appenders.

这就是对log4j追加程序的快速汇总。

References:

参考文献

  • log4j 1.2 javadocslog4j 1.2 javadocs
  • log4j tutoriallog4j教程
  • log4j.properties examplelog4j.properties示例

翻译自: https://www.journaldev.com/10703/log4j-appenders-tutorial

appenders

appenders_Log4j Appenders教程相关推荐

  1. Log4j 2使用教程转

    Log4j 2的好处就不和大家说了,如果你搜了2,说明你对他已经有一定的了解,并且想用它,所以这里直接就上手了. 1. 去官方下载log4j 2,导入jar包,基本上你只需要导入下面两个jar包就可以 ...

  2. springboot教程-web(二)

    撸了今年阿里.头条和美团的面试,我有一个重要发现.......>>> 第一节 现在开始springboot-web开发教程. 引入依赖,pom.xml <?xml versio ...

  3. Log4j 2使用教程

    转载自 天外的星星:http://www.cnblogs.com/leo-lsw/p/log4j2tutorial.html 官方文档:http://logging.apache.org/log4j/ ...

  4. Java基础学习总结(42)——Log4j 2使用教程

    1. 去官方下载log4j 2,导入jar包,基本上你只需要导入下面两个jar包就可以了(xx是乱七八糟的版本号): log4j-core-xx.jar log4j-api-xx.jar 2. 导入到 ...

  5. springboot启动图标_SpringBoot基础教程

    往期推荐 老男孩Go语言教程 2020黑马Python 图灵学院微服务教程 网易云课堂2019 Java高级教程 郭术生AE教程 简单介绍 springBoot按照开发习惯对原来的xml配置提供了预配 ...

  6. web集成axis2_AXIS2 Web服务教程

    web集成axis2 Welcome to Apache Axis2 Tutorial. Recently I was trying to upgrade my Apache Axis2 skills ...

  7. log4j教程_Log4j教程

    log4j教程 Welcome to log4j tutorial. Log4j is most used logging framework in java applications. In thi ...

  8. log4j 配置文件示例_Log4j2示例教程–配置,级别,附加程序

    log4j 配置文件示例 Welcome to the Apache Log4j2 Example Tutorial. If you ask an expert developer about the ...

  9. Log4j2日志记录框架的使用教程与简单实例

    1.Log4j2的使用教程 1.1 简介 Log4j的1.x版本虽然已经被广泛使用于很多应用程序中,但由于出现内存泄漏等bug,代码难以维护,以及需要使用老版本的jdk等劣势,在2015年8月已经玩完 ...

最新文章

  1. python bootstrap 视频_想用Django+ Bootstrap写一个网站, 有哪些比较系统完整的书或者视频可以参考?...
  2. 存储过程是用来干什么的_感情不是用来考验的
  3. 网络工程师和网络管理原的区别
  4. 深度学习PyTorch,TensorFlow中GPU利用率较低,使用率周期性变化的问题
  5. 暑假前挑战赛1—— A,B题解
  6. concurrentHashMap扩容细节
  7. logmein攻防世界wp
  8. 钟表维修管理系统技术解析(六) 录入保修单
  9. Making Pre-trained Language Models Better Few-Shot Learners
  10. 移动端适配方案(rem+flex)
  11. Lua IDE - x-studio 强大的IDE
  12. C 实现FFT与IFFT
  13. Ping++通过PCI DSS认证,保护企业用户信息安全
  14. jasper report分组显示
  15. RabbitMQ系列【8】消息可靠性之ACK机制
  16. 导致请求失败 设备硬件出现致命错误_硬盘提示无法访问设备硬件出现致命错误,导致请求失败,里面的数据如何找到...
  17. python如何读取数据时出现错误_python读取excel数据报xlrd.biffh.XLRDError错误原因,,比如说我要读取 http...
  18. 读秀数据库的用法+全国图书馆参考咨询联盟
  19. 英特尔打通云边协同任督二脉,驱动制造业从高产到高质蝶变
  20. jdbc批处理+手动事务+多线程实现81秒插入1000万数据(多线程版)

热门文章

  1. 终于能理解kmp算法了
  2. windows8.1 plsql连接oracle
  3. 武魂金刚少林加点、装备坐骑及江湖技能选择
  4. [转载] Python字符串函数
  5. [转载] Python:numpy中array的用处
  6. [转载] Python使用QRCode生成二维码
  7. BZOJ4557 JLOI2016侦察守卫(树形dp)
  8. Linux yum安装
  9. C# XXX.XmlSerializers”的程序集未能加载到..
  10. Codeforces Round #237 (Div. 2)