Log4j官方文档翻译(三、配置)

  之前的章节介绍了log4j的核心组件,本章将会通过配置文件介绍一下核心组建的配置。   主要在配置文件中配置log4j的日志级别,定义appender、layout等。

  log4j.properties是log4j的配置文件,它采用键值对的方式定义。

  默认情况下,logManager对象会在CLASSPATH目录下寻找log4j.properties

先看看基本的配置模板

# Define the root logger with appender X
log4j.rootLogger = DEBUG, X
# Set the appender named X to be a File appender
log4j.appender.X=org.apache.log4j.FileAppender
# Define the layout for X appender
log4j.appender.X.layout=org.apache.log4j.PatternLayout
log4j.appender.X.layout.conversionPattern=%m%n

看看这个配置文件都做了什么:

  • 首先日志的级别是DEBUG,另外还添加来一个appender,名字是X。
  • 设置appender的名字是X,并且定义该appender的实现为org.apache.log4j.FileAppender,即文件读写方式
  • 为X设置显示的方式——layout

真实样例

# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE
# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out
# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

  上面的配置文件又做了什么呢?

  • 日志的root级别为DEBUG,DEBUG的appender名字是FILE。
  • 设置FILE的实现为org.apache.log4j.FileAppender,它会把日志信息写入日志目录中叫log.out的文件。
  • layout的格式定义为%m%n,意思是每条日志都会跟随一个换行符。

  需要注意的是log4j支持UNIX风格的变量引用,比如${variableName}

Appenders

  log4j提供了多种的Appender对象,用于输出日志消息到不同的目的地,比如控制台,文件,系统事件日志等等。每个appender对象都有不同的配置属性,这些属性定义来对象的行为。

  • layout    appender使用这个layout对象转换日志信息的格式
  • target    目标可能是控制台、文件、也可能依赖于其他的appender
  • level    用于设定过滤日志的级别
  • threshhold    appender可以设置阈值,与日志的级别有关。日志会忽略掉所有低于该级别的日志
  • filter    过滤器对象能够分析日志信息,然后决定日志请求由某个appender处理还是丢掉

  可以通过下面的方式,给logger添加appender

log4j.logger.[logger-name]=level, appender1,appender..n

  当然如果在XML也可以通过下面的方式:

<logger name="com.apress.logging.log4j" additivity="false">
    <appender-ref ref="appender1"/>
    <appender-ref ref="appender2"/>
</logger>

   如果想在程序中添加appender,则可以调用下面的方法:

public void addAppender(Appender appender);

  这个addAppender()方法向logger对象中添加appender。

  像例子中展示的,它可以同时配置多个appender,每个日志都会独立的发送不到不同的目的地

  上面只展示来FileAppender的用法,log4j还有下面的appender以供使用:

  • AppenderSkeleton
  • AysncAppender
  • ConsoleAppender
  • DailyRollingFileAppender
  • ExternallyRolledFileAppender
  • FileAppender
  • JDBCAppender
  • JMSAppender
  • LF5Appender
  • NTEventLogAppender
  • NullAppender
  • RollingFileAppender
  • SMTPAppender
  • SocketAppender
  • SocketHubAppender
  • SyslogAppender
  • TelnetAppender
  • WriterAppender

layout

上面使用过PatternLayout,下面还有其他的选项:

  • DateLayout
  • HTMLLayout
  • PatternLayout
  • SimpleLayout
  • XMLLayout

不同的appenders和layout用法,后续会慢慢更新。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI星球

如何在ubuntu 16.04 下安装 Tensorflow

如果系统没有安装 gcc 则会提示 command not found。这时要先安装 gcc。

2282
来自专栏TSW

Node.js官方披露安全漏洞,建议尽快升级

1283
来自专栏信安之路

Linux 闯关游戏之通关秘籍

强盗战争是针对绝对的初学者。它将教授需要能够玩其他战争游戏的基础知识,通过这个游戏能学习到很多 Linux 的基础知识。和大多数其他游戏一样,这个游戏按层次组织...

3906
来自专栏白驹过隙

OpenSSL - 文件和字符MD5加密实现

37116
来自专栏WindCoder

SSM笔记(一)框架整合

用了好久了,但都是当初大神配置完后直接粘贴复制过来的,一直没仔细看过相关配置,趁此机会对自己也算是一个复习与深入,也希望对初学者有所帮助。本系列均是基于IDEA...

1781
来自专栏LanceToBigData

linux(十二)之用户管理

前面学习了那么多关于linux的东西,相信大家都对linux应该 有一个大概的了解了。现在给大家分享的是linux中的用户管理,接下来让我们进入正题吧! 今天其...

2037
来自专栏北京马哥教育

万字长文为你深入解读 Linux 用户及用户组管理

运维行业正在变革,推荐阅读:30万年薪Linux运维工程师成长魔法 无论是出于 Linux 本身的多用户多任务分时操作系统的性质,还是出于系统安全的考虑, L...

4085
来自专栏杨建荣的学习笔记

Linux中的configure,make,make install到底在做些什么

在Linux下经常要安装部署一些软件包或者工具,拿到安装包之后一看,简单,configure,make, make install即可搞定。 有时...

3543
来自专栏乐沙弥的世界

安装Oracle 11g RAC R2 之Linux DNS 配置

    Oracle 11g RAC 集群中引入了SCAN(Single Client Access Name)的概念,也就是指集群的单客户端访问名称。SCAN...

1043
来自专栏友弟技术工作室

lvm

逻辑卷管理LVM是一个多才多艺的硬盘系统工具。无论在Linux或者其他类似的系统,都是非常的好用。传统分区使用固定大小分区,重新调整大小十分麻烦。但是,LVM可...

4047

扫码关注云+社区

领取腾讯云代金券