log4j使用总结

来源:互联网 发布:mac怎么关闭dashboard 编辑:程序博客网 时间:2024/05/12 08:12

刚研究了一下log4j的用法,现在做一下总结。我先说一下知识点,后面会给出一个我写好的例子。

一、jar包

log4j是一个开源项目,要使用就必须引入jar包,这里给出一个我云盘分享的链接:log4j-1.2.17.jar,当然这个网上好多,自己随便搜一下就能找到。


二、日志级别,这里没什么好说的,我就把人家总结好的粘贴过来吧

每个Logger都被了一个日志级别(log level),用来控制日志信息的输出。日志级别从高到低分为:
A:off         最高等级,用于关闭所有日志记录。
B:fatal       指出每个严重的错误事件将会导致应用程序的退出。
C:error      指出虽然发生错误事件,但仍然不影响系统的继续运行。
D:warm     表明会出现潜在的错误情形。
E:info         一般和在粗粒度级别上,强调应用程序的运行全程。
F:debug     一般用于细粒度级别上,对调试应用程序非常有帮助。
G:all           最低等级,用于打开所有日志记录。


三、输出端APPender

输出端说白了就是你的日志要写到哪里,这个选择性很多,根据你自己需求选择就行了。下面列一下可用的输出端:

1、org.apache.log4j.ConsoleAppender:将日志信息输出到控制台,本人还是喜欢syso

2、org.apache.log4j.FileAppender:将日志信息输出到一个文件

3、org.apache.log4j.DailyRollingFileAppender:将每天的日志信息输出到一个新的日志文件

4、org.apache.log4j.RollingFileAppender:这一个与上一个不同的地方就是可以控制日志文件的大小,超出时会生成新的

5、org.apache.log4j.WriteAppender:将日志信息以流格式发送到任意指定地方

6、org.apache.log4j.jdbc.JDBCAppender:通过JDBC把日志信息输出到数据库中


四、日志格式化器

这个也就是控制你日志写的格式,常见的有三种,分别是:HTMLLayout按照html格式输出,SimpleLayout简单输出模式(级别-信息),PatternLayout可以自定义格式。

其中PatternLayout是比较常用的,可以定义一些固定的信息,也可以指定一些变量信息,这些变量信息一般用‘%’与字母表示,常见的有:%m 表示日志信息, %t 表示输出该日志的线程, %d 表示输出日期时间, %n表示换行。

以上这些信息都可以在配置文件中配置,我目前用的配置文件名称为“log4j.properties”,直接放在src目录下就行,不需要手动 加载。如果用其它的名字或者放在其它的位置需要手动加载,加载用 PropertyConfigurator.configure("classes/my.properties");

下面是我用的配置文件:log4j.properties

log4j.rootLogger=DEBUG,msg,sql,erolog4j.appender.msg=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.msg.File=./log/infolog4j.appender.msg.DatePattern='.'yyyy-MM-dd'.log'log4j.appender.msg.Encoding=GBKlog4j.appender.msg.Threshold=INFOlog4j.appender.msg.layout=org.apache.log4j.PatternLayoutlog4j.appender.msg.layout.ConversionPattern=<debug %d{yyyy-MM-dd HH:mm:ss.SSS} : %m />%nlog4j.appender.sql=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.sql.File=./log/sqllog4j.appender.sql.DatePattern='.'yyyy-MM-dd'.log'log4j.appender.sql.Encoding=GBKlog4j.appender.sql.Threshold=FATALlog4j.appender.sql.layout=org.apache.log4j.PatternLayoutlog4j.appender.sql.layout.ConversionPattern=<sql %d{yyyy-MM-dd HH:mm:ss.SSS} : %m />%nlog4j.appender.ero=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.ero.File=./log/errorlog4j.appender.ero.DatePattern='.'yyyy-MM-dd'.log'log4j.appender.ero.Encoding=GBKlog4j.appender.ero.Threshold=ERRORlog4j.appender.ero.layout=org.apache.log4j.PatternLayoutlog4j.appender.ero.layout.ConversionPattern=<error %d{yyyy-MM-dd HH\:mm\:ss.SSS} \: %m />%n

这里我就不对日志文件做详细说明了,相信仔细看一下就能明白了。

下面是我调用的类,是根据日志文件做的,很简单

package com.bks.log;import org.apache.log4j.Logger;/** * 日志管理类 * @author ICE * */public class LOG {/** * 获取log4j的日志记录器,通过该记录器 */private static Logger logger = Logger.getLogger(LOG.class);/** * 向info日志文件中记录日志信息 * @param msg 要记录的日志信息 */public static void log(String msg){logger.info(msg);}/** * 向fatal日志文件中记录信息,这里主要记录sql信息 * @param sql 要记录的日志信息 */public static void SQLLog(String sql){logger.fatal(sql);}/** * 向error日志文件中记录信息 * @param error 要记录的日志信息 */public static void errorLog(String error){logger.error(error);}/** * 向error日志文件中记录信息,信息包括基本信息和异常信息 * @param error 要记录的基本日志信息 * @param e 要记录的异常信息 */public static void errorLog(String error,Exception e){logger.error(error + ":" + e.getMessage());}}

这里一些知识点没有用到,也没有在程序中手动配置一些信息,如果需要可以自己研究一下。


原创粉丝点击