log4j实例 ssm项目,sql打印

 一、 简单实例

穿件配置文件

1.log4j.properties

#使用appender定义根记录器 X,Y

log4j.rootLogger=ERROR,X,Y

#mybatis显示SQL语句日志配置 

log4j.logger.org.mybatis=DEBUG

#com.hp.dao为mapper文件所在位置

log4j.logger.com.hp.dao=DEBUG

#打印日志到控制台

log4j.appender.Y=org.apache.log4j.ConsoleAppender

log4j.appender.Y.Target=System.out

#打印布局

log4j.appender.Y.layout=org.apache.log4j.PatternLayout

log4j.appender.Y.layout.ConversionPattern=%p [%d] %l %m%n

# 打印日志到文件

#普通

#log4j.appender.X=org.apache.log4j.FileAppender

#可设置文件最大值和文件数量,当文件超过最大文件数量,将会删除第一个,以此类推

#log4j.appender.X=org.apache.log4j.RollingFileAppender

#通过时间创建文件

log4j.appender.X=org.apache.log4j.DailyRollingFileAppender

#设置日志文件名称,及位置

log4j.appender.X.File=C:/Users/XR/Desktop/log/log.out

# 设置为true这文件不会被覆盖

log4j.appender.X.Append=true

# 文件生成频率:每天一个

log4j.appender.X.DatePattern='.' yyyy-MM-dd

#打印布局

log4j.appender.X.layout=org.apache.log4j.PatternLayout

log4j.appender.X.layout.conversionPattern=%p [%d] %l %m%n

上边配置的结果为:分别在控

2.maven用到的包

<!--解决Spring使用slf4j输出日志与log4j冲突的问题--> 

        <dependency> 

             <groupId>org.slf4j</groupId> 

             <artifactId>slf4j-log4j12</artifactId> 

             <version>1.6.6</version> 

        </dependency> 

        <!-- log4j的包 -->

        <dependency> 

             <groupId>org.slf4j</groupId> 

             <artifactId>slf4j-api</artifactId> 

             <version>1.6.6</version> 

        </dependency> 

        <dependency> 

             <groupId>log4j</groupId> 

             <artifactId>log4j</artifactId> 

             <version>1.2.16</version> 

        </dependency>

3.web.xml添加

<!-- 加载log4j配置文件 -->

    <context-param>

      <param-name>log4jConfigLocation</param-name>

      <param-value>classpath:properties/log4j.properties</param-value>

    </context-param>

    <listener>

       <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>

    </listener>

二、扩展

    1、在程序中打印自定义日志

        1)首先获取log对象

               获取没有类名的对象  static Logger log = Logger.getRootLogger()

      获取有类名对象 static Logger log = Logger.getLogger(UserAction.class.getName());

      2)打印

        log.error("日志信息!");//error为日志级别,可选

    2、日志级别

        按等级 ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF

                ALL:所有级别,包括自定义级别

                DEBUG : 明细,程序运行的每一步

                INFO :  指定能够突出在粗粒度级别的应用程序运行情况的信息的消息

                 WARN :  指定具有潜在危害的情况

                 ERROR :  错误事件可能仍然允许应用程序继续运行

                 FATAL :  指定非常严重的错误事件,这可能导致应用程序中止

                 OFF  :  这是最高等级,为了关闭日志记录

        3、布局

        log4j.properties代码为:                             日期    包.类                  类       包.类.方法(类:行号)     

        log4j.appender.X.layout.conversionPattern=%d 1.%c 2.%C 3.%F    4.%l   

      行号      级别          线程名称                      方法     日志内容       换行

    5.%L   6.%p  7.%r 8.%t     9.%x    10.%X 11.%M 12.%m     13.%n

     打印内容为:

        2019-01-25 11:30:10,8091.com.hp.action.UserAction 2.com.hp.action.UserAction 3.UserAction.java 4.com.hp.action.UserAction.getListAll(UserAction.java:26) 5.26 6.DEBUG 7.59595 8.http-8080-1 9. 10.{} 11.getListAll 12.这是一个debug级别的日志! 13.

     控制字符数量:

        %20m 不足二十字符时在左侧填充空格

        %-20m 不足二十字符时在右侧填充空格

        %20.30 不足二十个字符时,在左侧填充空格,超过三十个字符截取成三十个字符(保留右侧)

        %20.30 不足二十个字符时,在右侧填充空格,超过三十个字符截取成三十个字符(保留右侧)

    

   4、日志的打印方式

         1.log4j.appender.X=org.apache.log4j.ConsoleAppender//日志记录到控制台

            2.log4j.appender.X=org.apache.log4j.FileAppender //日志记录到文件

            3.log4j.appender.X=org.apache.log4j.RollingFileAppender //可设置文件最大值,和备份文件数量

                         4.log4j.appender.X=org.apache.log4j.DailyRollingFileAppender //根据时间创建文件

     5log4j.appender.X =org.apache.log4j.jdbc.JDBCAppender//日志记录到数据库

            5、控制不同包打印日志不同级别

        log4j.logger.com.hp=error;

    

            6、定义后从新定义级别

            og4j.appender.Y.threshold=ERROR

            注意:这里的级别,一定要高于初始定义的级别,不然无效

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值