个人结合学习视频做一个简单理解、记录
日志级别说明: Log4j提供了8个级别的日志输出,分别为 ALL 最低等级 用于打开所有级别的日志记录 TRACE 程序推进下的追踪信息,这个追踪信息的日志级别非常低,一般情况下是不会使用的 DEBUG 指出细粒度信息事件对调试应用程序是非常有帮助的,主要是配合开发,在开发过程中打印一些重要的运行信息 INFO 消息的粗粒度级别运行信息 WARN 表示警告,程序在运行过程中会出现的有可能会发生的隐形的错误 注意,有些信息不是错误,但是这个级别的输出目的就是为了给程序员以提示 ERROR 系统的错误信息,发生的错误不影响系统的运行 一般情况下,如果不想输出太多的日志,则使用该级别即可 FATAL 表示严重错误,它是那种一旦发生系统就不可能继续运行的严重错误 如果这种级别的错误出现了,表示程序可以停止运行了 OFF 最高等级的级别,用户关闭所有的日志记录 其中debug是我们在没有进行设置的情况下,默认的日志输出级别
前--这是默认的初始化配置,不使用可不添加。
//加载初始化配置 BasicConfigurator.configure(); Logger logger = Logger.getLogger(Log4jTest01.class); logger.fatal("fatal信息"); logger.error("error信息"); logger.warn("warn信息"); logger.info("info信息"); logger.debug("debug信息"); logger.trace("trace信息");
begin
1.log4j.properties配置文件
#配置根节点logger log4j.rootLogger=trace,console #配置自定义logger,log4j.logger.这后面开始就是项目的路径,会继承根logger log4j.logger.com.bjpowernode.log4j.test=info,file #配置apache的logger log4j.logger.org.apache=error #日志输出方式--控制台 log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.conversionPattern=%r [%-10p] %t %c %d{yyyy-MM-dd HH:mm:ss:SSS} [%m] %n #日志输出方式--文件 log4j.appender.file=org.apache.log4j.FileAppender log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.conversionPattern=%r [%-10p] %t %c %d{yyyy-MM-dd HH:mm:ss:SSS} [%m] %n log4j.appender.file.file=E://test//log4j.log log4j.appender.file.encoding=UTF-8 #日志输出方式--根据文件大小 #RollingFileAppender log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender log4j.appender.rollingFile.layout=org.apache.log4j.PatternLayout log4j.appender.rollingFile.layout.conversionPattern=%r [%-10p] %t %c %d{yyyy-MM-dd HH:mm:ss:SSS} [%m] %n log4j.appender.rollingFile.file=E://test//log4j.log log4j.appender.rollingFile.encoding=UTF-8 #拆分文件的大小 log4j.appender.rollingFile.maxFileSize=1MB #拆分文件的数量 log4j.appender.rollingFile.maxBackupIndex=5 #日志输出方式--根据时间 #DailyRollingFileAppender log4j.appender.dailyRollingFile=org.apache.log4j.DailyRollingFileAppender log4j.appender.dailyRollingFile.layout=org.apache.log4j.PatternLayout log4j.appender.dailyRollingFile.layout.conversionPattern=%r [%-10p] %t %c %d{yyyy-MM-dd HH:mm:ss:SSS} [%m] %n log4j.appender.dailyRollingFile.file=E://test//log4j.log log4j.appender.dailyRollingFile.encoding=UTF-8 ##文件拼接格式,不能使用'.'yyyy-MM-dd HH:mm:ss:SSS,这个格式,会报错 log4j.appender.dailyRollingFile.datePattern='.'yyyy-MM-dd HH-mm-ss #配置appender输出方式 输出到数据库表 log4j.appender.logDB=org.apache.log4j.jdbc.JDBCAppender log4j.appender.logDB.layout=org.apache.log4j.PatternLayout log4j.appender.logDB.Driver=com.mysql.jdbc.Driver log4j.appender.logDB.URL=jdbc:mysql://localhost:3306/test log4j.appender.logDB.User=root log4j.appender.logDB.Password=123456 log4j.appender.logDB.Sql=INSERT INTO tbl_log(name,createTime,level,category,fileName,message) values('project_log','%d{yyyy-MM-dd HH:mm:ss}','%p','%c','%F','%m')
2.java代码
public class Log4jTest02 { @Test public void test02(){ //启动默认的log4j.properties配置文件 //BasicConfigurator.configure(); //输出Logger的详细信息 //LogLog.setInternalDebugging(true); Logger logger = Logger.getLogger(Log4jTest02.class); logger.fatal("fatal"); logger.error("error"); logger.warn("warn"); logger.info("info"); logger.debug("debug"); logger.trace("trace"); Logger logger1 = Logger.getLogger(Logger.class); logger1.fatal("fatal"); logger1.error("error"); logger1.warn("warn"); logger1.info("info"); logger1.debug("debug"); logger1.trace("trace"); } }
3.依赖
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.21</version> </dependency>
4.总结
好奇心是动力!
第一步是导入依赖,第二步是配置根logger,其中参数第一个是日志级别,第二个参数是日志输出方式,可以有多种日志输出方式, “,”分隔,第三步总结了五种日志输出方式,可使用一个,也可多个一起使用,第四步测试。也可以配置自定义logger,前缀固定:log4j.logger.,注意后面有个点,后缀是项目的包路径。
如有不足可指出~