在工作过程中,常常需要查看后台日志,为了更好的记录日志,我们使用Log4j来记录日志。

一、maven依赖的配置

        在maven中央库库里找到log4j的java包,添加到依赖即可。
    <dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
5
 
1
    <dependency>
2
        <groupId>log4j</groupId> 
3
        <artifactId>log4j</artifactId>
4
        <version>1.2.17</version>
5
    </dependency> 

二、配置properties文件

        log4j的使用只需要在src下面放一个log4j.properties的文件,然后在该properties文件中进行配置即可。
        (1)配置全局根日志对象
             log4j.rootLogger = info,console,file
             格式:log4j.rootLogger  =   [level日志级别] , 输出端1 , 输出端2,  …

    (2)配置指定包下的日志
            log4j.logger.org.springframework =debug   
            格式: log4j.logger.包名 = 日志级别

    (3)配置日志的输出端
        控制台输出:
        log4j.appender.console = org.apache.log4j.ConsoleAppender (输出端)
log4j.appender.console.Threshold=info (日志级别)
log4j.appender.console.Target=System.out (目标)
log4j.appender.console.layout = org.apache.log4j.PatternLayout (日志格式器)
log4j.appender.console.layout.ConversionPattern =%p: %m%n [%d] [%c] [%r] [%t]%n (转换表达式)
文件输出:
log4j.appender.file = org.apache.log4j.DailyRollingFileAppender (每天产生一个文件)
log4j.appender.file.DatePattern='_'yyyy-MM-dd'.log' (前一天日志文件命名格式)
log4j.appender.file.File = F:/log/oa.log    (生成的文件)
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern =%p: %m%n [%d] [%c] [%r] [%t]%n
       转换表达式详解:
%p  输出优先级,即DEBUG,INFO,WARN,ERROR
%m  输出代码中指定的消息
%n  输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n” 
%d  输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,
            比如:%d{yyy MMM dd HH:mm:ss},输出类似:2002年10月18日  22 : 10 : 28
%c  输出所属的类目,通常就是所在类的全名 
%r  输出自应用启动到输出该log信息耗费的毫秒数 
%t  输出产生该日志事件的线程名 

(4)完整的配置文件如下:
## LOG4J 日志配置 ##
##01 配置全局日志
log4j.rootLogger = info,console,file ##02 配置指定包下的日志(局部),其他包的日志级别按全局的处理。(不过最终会输出的级别还和下面输出方式配置的级别有关系),
# Hibernate5 logger(虽然这里配置的是debug级,如果控制台配置的是info级别的话,debug级的日志也是不会输出的)
log4j.logger.org.hibernate=debug
log4j.logger.org.hibernate.hql=debug ##03 配置输出方式 ##
# 输出到控制台
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold=info
log4j.appender.console.Target=System.out
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern =%p: %m%n [%d] [%c] [%r] [%t]%n # 输出到文件
log4j.appender.file = org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.Threshold=info
# 设置DatePattern,当天日志保存到tax.log文件,前一天的日志文件名将被修改为tax.log + _yyyy-MM-dd.log
log4j.appender.file.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.file.File = D:/log/tax.log
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern =%p: %m%n [%d] [%c] [%r] [%t]%n
x
 
1
## LOG4J 日志配置 ##
2
##01 配置全局日志
3
log4j.rootLogger = info,console,file
4

5
##02 配置指定包下的日志(局部),其他包的日志级别按全局的处理。(不过最终会输出的级别还和下面输出方式配置的级别有关系),
6
# Hibernate5 logger(虽然这里配置的是debug级,如果控制台配置的是info级别的话,debug级的日志也是不会输出的)
7
log4j.logger.org.hibernate=debug   
8
log4j.logger.org.hibernate.hql=debug
9

10
##03 配置输出方式 ##
11
# 输出到控制台
12
log4j.appender.console = org.apache.log4j.ConsoleAppender
13
log4j.appender.console.Threshold=info
14
log4j.appender.console.Target=System.out
15
log4j.appender.console.layout = org.apache.log4j.PatternLayout
16
log4j.appender.console.layout.ConversionPattern =%p: %m%n [%d] [%c] [%r] [%t]%n
17

18
# 输出到文件
19
log4j.appender.file = org.apache.log4j.DailyRollingFileAppender
20
log4j.appender.file.Threshold=info
21
# 设置DatePattern,当天日志保存到tax.log文件,前一天的日志文件名将被修改为tax.log + _yyyy-MM-dd.log
22
log4j.appender.file.DatePattern='_'yyyy-MM-dd'.log'
23
log4j.appender.file.File = D:/log/tax.log
24
log4j.appender.file.layout = org.apache.log4j.PatternLayout
25
log4j.appender.file.layout.ConversionPattern =%p: %m%n [%d] [%c] [%r] [%t]%n

三、配置文件的解释

        
 

四、在java代码中使用日志

    public static void main(String[] args) {
Logger logger = Logger.getLogger(TestSpring.class);
logger.debug("这是debug");
logger.info("这是Info");
logger.error("这是error");
}
 
1
    public static void main(String[] args) {
2
        Logger logger = Logger.getLogger(TestSpring.class);
3
        logger.debug("这是debug");
4
        logger.info("这是Info");
5
        logger.error("这是error");
6
    }


Log4j使用笔记的更多相关文章

  1. Log4j使用笔记:每天生成一个日志文件、按日志大小生成文件

    其中TestLog4j.java如下: package cn.zhoucy.test; import org.apache.log4j.Logger; public class TestLog4j { ...

  2. log4j 使用笔记整理中

    Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式. 日志信息的常用的优先级从高到低有ERROR.WARN. INFO.DEBUG,分别用来指定这条日志信息的重 ...

  3. log4j学习笔记

    在java文件中导入包: import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; 在所使 ...

  4. Log4J使用笔记(转)

    转自:http://www.cnblogs.com/eflylab/archive/2007/01/11/618001.html Log4J是Apache的一个开放源代码的项目.通过使用Log4J,程 ...

  5. java中log4j学习笔记

    Log4j是apache的一个开源项目,用来操作程序日志信息的框架.因便于管理,在工程中用来代替System.out打印语句.通过配置Log4j中的log4j.properties,可以指定日志信息的 ...

  6. slf4j使用log4j学习笔记

    一,介绍 SLF4J 简单日记门面(Facade)SLF4J是为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的loging APIs实现. Loggi ...

  7. Log4j的应用实例(转)

    转自:http://www.cnblogs.com/eflylab/archive/2007/01/12/618080.html 在Log4J使用笔记中没有怎么写实例,那么在这篇中我将Log4j的一个 ...

  8. Log4j中配置日志文件相对路径

    方法一. 解决的办法自然是用相对路径代替绝对路径,其实log4j的FileAppender本身就有这样的机制,如:log4j.appender.logfile.File=${WORKDIR}/logs ...

  9. Log4j介绍,log4j.properties配置详解

    http://www.cnblogs.com/simle/archive/2011/09/29/2195341.html本文主要解释log4j的配置文件各个配置项的含义,内容是从网上转载的 1.Log ...

随机推荐

  1. Apex单元测试

    单元测试类 Salesforce中为Apex语言提供了完整的单元测试流程,包括单元测试类.测试的运行和结果分析等. 单元测试类是一种特殊的Apex类,基本语法和普通的Apex类一样. 单元测试类的结构 ...

  2. JMeter Sampler之BeanShellSampler的使用

    Sampler之BeanShellSampler的使用 by:授客 QQ:1033553122 欢迎加入软件性能测试交流群:7156436 1.  Bean Shell简介 ·         Bea ...

  3. vs下开发windows服务程序

    一. VS2012下开发Windows服务 1. 打开VS2012,新建项目,选择Windows服务,此处我以开发一个定时自动发送邮件的服务来做介绍,如下图: 2. 创建好后,编译器会自动创建一些文件 ...

  4. 洗礼灵魂,修炼python(20)--自定义函数(1)—基础概念

    作为开发,那么我们前面学的那些知识其实够了,但是不够精简,也不好维护,比如需要打印斐波那契数列: 而当我们需要再次打印斐波那契数列,又要把这段代码加上,是不是很烦,有没有方法可以解决,当然可以,那就是 ...

  5. 如何创建和还原SQL Server 2005数据库?

    在还原SQL Server 2005数据库文件之前,建议先把要还原的数据库文件复制粘贴到某个盘的根目录下,这样便于一会儿找到相关的文件,比如C盘. 先打开SQL Server 2005的Microso ...

  6. python第六十一天,第六十二天 redis

    redis 缓存系统 redis是业界主流的key-value nosql 数据库之一.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).se ...

  7. gitlab 和 github 配置 SSH Keys

    gitlab 文档上给了很好的配置的例子:https://gitlab.com/help/ssh/README#locating-an-existing-ssh-key-pair 针对mac 下的使用 ...

  8. 免费ARP

    1. 免费ARP基本概念 免费ARP,也叫Gratutious ARP.无故ARP.这种ARP不同于一般的ARP请求,它的Sender IP和Target IP字段是相同的,相当于是请求自己的IP地址 ...

  9. 鸟哥的 Linux 私房菜Shell Scripts篇(四)

    12.4 条件判断式 只要讲到『程式』的话,那么条件判断式,亦即是『 if then 』这种判别式肯定一定要学习的!因为很多时候,我们都必须要依据某些资料来判断程式该如何进行.举例来说,我们在上头的a ...

  10. PostgreSQL 空间处理函数

    PostGIS中的常用函数 以下内容包括比较多的尖括号,发布到blogger的时候会显示不正常,内容太多我也无暇一个个手动改代码,因此如有问题就去参考PostGIS官方文档. 首先需要说明一下,这里许 ...