设为首页 收藏本站
查看: 893|回复: 0

[经验分享] Java:Apache log4j简明教程(一)

[复制链接]

尚未签到

发表于 2015-7-31 07:51:42 | 显示全部楼层 |阅读模式
    Apache log4j的官方介绍是“log4j is a reliable, fast and flexible logging framework (APIs) written in Java, which is distributed under the Apache Software License. log4j is highly configurable through external configuration files at runtime. It views the logging process in terms of levels of priorities and offers mechanisms to direct logging information to a great variety of destinations, such as a database, file, console, UNIX Syslog, etc.”,翻译过来就是:log4j是基于Apache Software License发行的可靠、快速、可扩展的日志框架。log4j具有高可配置性,可以在运行的过程中通过外部文件配置它。log4j能够根据不同的级别优先权来过滤日志,并且提供了一种机制,能够将日志记录直接写到控制台,文件,数据库,UNIX系统日志等。
    上面的官方介绍,不光对log4j进行了定义,也对log4j的特点性能进行了阐述。log4j主要由logger(记录器),appender(输出源),layout(布局模式)三部分组成,其中logger用来捕获日志信息,layout用来对日志信息进行格式化,appender用来定义日志的输出源。具体的架构可以参加下图:
DSC0000.jpg
  log4j的安装方式与添加普通的.jar类库文件相同,可以到官网(http://logging.apache.org/log4j/2.x/)下载相关的包,有区别的是log4j需要添加上面提到的配置文件。
    那么配置文件应该如何写呢?
    log4j配置文件,全称为“log4j.properties”,采用key-value的形式保存参数,也可以采用XML文档形式来编写配置参数。一般情况下,log4j.properties需要包含过滤级别,日志目录,日志文件名,输出源,输出源的详细实现类,布局模式,以及相应的格式化参数等配置信息,详细内容如下:
    过滤级别:ALL,TRACE,DEBUG,INFO,WARN,ERROR,FATAL
    输出源:FILE,DB,Console,对应的详细实现类为org.apache.log4j.FileAppender,org.apache.log4j.JDBCAppender,org.apache.log4j.ConsoleAppender。
    布局模式:PatternLayout,HTMLLayout,其中PatternLayout的相应格式化参数(%[])如下表:

C             输出发出日志记录请求的类的完全限定名,如org.example.demo.Test;
d 输出发生日志记录事件的日期,如%d{HH:mm:ss};
m 输出与日志记录事件相关联的应用程序的信息;
M 输出发出日志记录请求的方法的名称;
n 输出与系统平台相关的换行符;
p 输出日志的过滤级别;
X 输出发出日志记录请求的客户端的IP,如X{clientIP};
    一个采用key-value形式的具体示例如下:



# Define the root logger and the directory of log file.
logDir = E:/temp
log4j.rootLogger = DEBUG, FILE
# Define the file appender
log4j.appender.FILE = org.apache.log4j.FileAppender
log4j.appender.FILE.File = ${logDir}/log.txt
# Define the layout for the file appender
log4j.appender.FILE.layout = org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern = %m%n
  log4j.properties配置文件分为三部分,第一部分配置了日志文件的保存目录logDir,同时说明将日志的过滤级别设置为DEBUG,输出源是FILE;第二部分配置了输出源的详细实现类org.apache.log4j.FileAppender,日志文档名称log.txt;第三部分则规定了日志文档的布局模式PatternLayout,及详细的格式化参数%m%n。
    上述配置文件的示例用XML形式编写后如下:




















    配置完log4j.properties是不是就可以编写Java程序运行了?
    其实,到这里log4j的配置工作还没有结束,还需要确定log4j.properties文件应该放置在哪个位置。官方介绍说log4j.properties应该放置到PATH或者CLASSPATH所在目录当中,但是如果按照这样操作,遇到每个Java工程都需要定制配置文件问题时,将会很容易造成命名冲突。合适的作法是将log4j.properties与具体的Java工程关联,将log4j.properties放置到src包中。或者用一种更值得推荐的做法:在Java工程根目录下新建config目录 > 将log4j.properties放置到config目录中 > 鼠标右击config目录 > 选择Build Path > 单击Use as Source Folder。
    现在就可以写个Java类运行一下了,示例如下:



1 package org.warnier.zhang.demo;
2
3 import org.apache.log4j.Logger;
4
5 public class Test {
6     /**
7      * 获得记录器;
8      */
9     static Logger logger = Logger.getLogger(Test.class);
10     
11     public static void main(String[] args) {
12         logger.debug("DEBUG > Hello World!");
13         logger.info("INFO > Hello World!");
14     }
15
16 }
    到此,Apache log4j简明教程(一)就结束了,下一讲将会讲解如何将日志输出到MySQL数据库。希望次教程能够给有困扰的读者一点帮助。当然,由于笔者水平有限,如果有错误,欢迎读者留言交流。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-92438-1-1.html 上篇帖子: Apache Spark源码走读之22 下篇帖子: 【面试虐菜】—— Apache知识整理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表