Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

那么,我们应该如何配置和使用log4j呢?

<1>首先,我们要配置jar包,通过搜索引擎搜索log4j maven,保存进pom.xml即可
<2>配置文件,通常将log4j.properties放置到src目录下,, log4j.properties代码样式如下:

log4j.rootCategory=DEBUG, file, stdoutlog4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d-[TS] %p %t %c - %m%nlog4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=target/test.log
log4j.appender.file.MaxFileSize=5120KB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n##SPRING改为WARN级别
log4j.logger.org.springframework=DEBUG
log4j.logger.org.mybatis=WARN
log4j.logger.org.apache.velocity=WARN
log4j.logger.org.apache.commons=WARN##显示SQL语句部分,生产环境请调整为ERROR
log4j.logger.com.mybatis=DEBUG
log4j.logger.com.mybatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.mybatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.mybatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG

<3>配置好了log4j,我们接下来分享一下它要如何使用。首先,我们要了解log4j的三大组件:
Logger(日志类别):
Appender(日志输出目的地)
Layout(格式化输出日志信息)
1,对于logger,log4j提供四种级别,从低到高分别是DEBUG、INFO、WARN、ERROR 、FATAL。我们可以通过更改log4j.properties中的属性来对输出级别进行设置

log4j.rootCategory=DEBUG, file, stdout//例如,设置级别为debug

当我们设置好一个级别之后,比该级别低的日志信息将不会再显示,log4j只会显示和设置级别一样或者比日志级别高的信息
2,对于Appender,Appender可以控制日志输出的目的地。

log4j.appender.appenderName = 属性值

属性值可以设置成以下几种,每种都是不同的日志输出方式

org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

如果想具体的设置日志输出属性,比如路径,日志文件的大小…可以通过自定义的appenderName.option来设置

log4j.appender.appenderName.option1 = value

3,Layout(格式化输出日志信息),Layout可以控制输出信息的格式,用法类似于C语言中scanf,prinf的参数

log4j.appender.appenderName.layout = 属性值
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)log4j.appender.appenderName.layout.option1 = value1
ConversionPattern (举例:%d-[ZZXTIT] %p %t %c - %m%n)

每个字符都有独特的含义,下面是字符含义表

  • %p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL
    %d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
    %r: 输出自应用启动到输出该log信息耗费的毫秒数
    %c: 输出日志信息所属的类目,通常就是所在类的全名
    %t: 输出产生该日志事件的线程名
    %l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)
    %x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中
    %%: 输出一个”%”字符
    %F: 输出日志消息产生时所在的文件名称
    %L: 输出代码中的行号
    %m: 输出代码中指定的消息,产生的日志具体信息
    %n: 输出一个回车换行符,Windows平台为”\r\n”,Unix平台为”\n”输出日志信息换行

现在,我们可以具体的使用log4j了

private final Log log=LogFactory.getLog(LoginFilter.class);

因为我们输出的日志信息不希望被修改,我们可以将其设置为final,在getlog中传入当前类的类名(不错,我在做过滤器…)之后,使用对象名点方法名即可输出日志信息

log.debug("这是一条debug信息");

这样,日志信息就成功输出了

log4j在eclipse上使用简介相关推荐

  1. Eclipse入门-- Eclipse的使用简介及插件开发

    Eclipse入门--  Eclipse的使用简介及插件开发 内容: 一.Eclipse简介  1.文件存放  2.Eclipse开发环境  3.编译与运行  4.版本管理  5.使用插件 二.开发E ...

  2. [转载]Eclipse开发工具简介

    Eclipse开发工具简介 Eclipse是开放源代码的项目,你可以到www.eclipse.org去 免费下载Eclipse的最新版本,一般Eclipse提供几个下载版本:Release,Stabl ...

  3. eclipse上搭建MyBatis环境

    在eclipse上搭建了MyBatis运行环境,并实现基本查询操作 第一步:数据库准备: 1.创建数据库表 user_information 2.向表中插入一些记录 第二步:建立Java项目命名为My ...

  4. maven如何在eclipse上加载

    maven如何在eclipse上安装和使用 maven是Apache旗下的定级开源工具,在项目管理方面有强大的能力.Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具.由于 Maven ...

  5. java cell报错_有一个小小点问题,现在我想从eclipse上读取Excel表

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 有一个小小点问题,现在我想从eclipse上读取Excel表,但是sheet的方法getcell报错,请问这是哪儿的错呢?谢谢 源码及报错图片如下: pa ...

  6. android dtb文件位置_android MSM8974 上DeviceTree简介

    简介 主要功能是不在代码中硬编码设备信息,而是用专门的文件来描述.整个系统的设备节点会形成一个树,设备节点里可以设置属性.官网在http://www.devicetree.org .入门指南请参考ht ...

  7. 在Eclipse上搭建Android C开发环境

    1.需要准备的工具和软件 JDK eclipse indigo(我下载的是indigo的C/C++开发版) ADT12.0(当然下最新的ADT了,免得有太多的麻烦.) Android SDK Andr ...

  8. Eclipse上安装GIT插件EGit及使用

    一.Eclipse上安装GIT插件EGit Eclipse的版本eclipse-java-helios-SR2-win32.zip(在Eclipse3.3版本找不到对应的 EGit插件,无法安装) E ...

  9. IDE之EcliPse:EcliPse软件的简介、安装、入门、使用方法之详细攻略

    IDE之EcliPse:EcliPse软件的简介.安装.入门.使用方法之详细攻略 目录 EcliPse软件的简介 Eclipse特点 EcliPse软件的安装 EcliPse软件的入门 1.快捷键集合

最新文章

  1. Adobe源码泄漏?3行代码搞定,Flash动画无缝导入Android/iOS/cocos2dx(一)
  2. Android面试知识点(转)
  3. UVA 315 :Network (无向图求割顶)
  4. camelot工具进行pdf表格解析重建
  5. MFC ComboBox
  6. python下载百度网盘文件-python通过百度云api的方式上传或下载文件
  7. 大型分布式网站术语分析 15 条,你知道几条?
  8. wps中的相交_【研途技能贴】| WPS里的布尔运算
  9. python写入数据库_Python pymysql写入数据库报错
  10. 关于Keychain
  11. docker常用参数详解,docker run常用参数详解(精)
  12. HbuliderX + vue项目(初始化创建) - 准备篇
  13. Java开源工作流框架对比
  14. 基于Java的Cplex入门
  15. ROS实战篇(一)如何在ROS中编写自己的package?------ 以节点通信为例
  16. 用C#写经理评分系统
  17. 下列哪个网站还未推出微博服务器,新浪微博笔试题与答案
  18. 【阅读笔记】量子信息
  19. linux系统清理命令行,快速解决Win10系统升级助手打不开无法运行的方法
  20. cdn刷新api_CDN页面刷新接口定义[高升]

热门文章

  1. Boom Library 93套影视游戏无损配乐音效素材合集包
  2. Qt 编译一直死循环问题
  3. MATLAB简易验证码识别程序介绍
  4. smbpasswd 和 pdbedit 的区别
  5. 关于一对多,多对多的多表查询的控制
  6. JS --正则表达式验证、实战之邮箱模式
  7. Linux音频设备驱动
  8. Oracle EBS R12 运行adadmin 安装中文语言包过程中意外中断后的处理
  9. 互联网企业的移动布局
  10. ubuntu下wireshark添加root权限