log4j的使用(1) —— 简单入门篇
这里会介绍三种打印日志的方法:控制台Console,文件File,数据库DataBase
1.下载lo4j的jar包并导入project
2.因为要在数据库添加日志,所以先新建一个库,并新建打印日志的表。
在mysql里新建database:log4j,然后在log4j库里新建table:
1 CREATE TABLE log4j 2 ( 3 logId INT NOT NULL AUTO_INCREMENT,/*流水号*/ 4 createDate VARCHAR(45) DEFAULT NULL,/*日志生成时间*/ 5 thread VARCHAR(45) DEFAULT NULL,/*当前线程*/ 6 LEVEL VARCHAR(45) DEFAULT NULL,/*当前日志的级别*/ 7 class VARCHAR(45) DEFAULT NULL,/*生成日志的类*/ 8 message VARCHAR(245) DEFAULT NULL,/*日志具体信息*/ 9 PRIMARY KEY(logId) 10 )
3.在src目录下新建文件:log4j.properities
.在log4j.properities文件中添加配置:(具体怎么写,个人建议不需要记,能理解并且会用,用的次数多了熟而生巧。。。)
1 #定义3种输出方式:Console,File,DataBase 2 log4j.rootCategory=INFO,A1,A2,A3 3 4 #定义A1输出到控制器 5 log4j.appender.A1=org.apache.log4j.ConsoleAppender 6 #定义A1的布局模式为PaternLayout 7 log4j.appender.A1.layout=org.apache.log4j.PatternLayout 8 # 定义A1的输出格式 9 log4j.appender.A1.layout.ConversionPattern=%4p [%t] (%F:%L) - %m%n 10 11 #定义A2输出到文件 12 log4j.appender.A2=org.apache.log4j.RollingFileAppender 13 #定义A2输出到哪个文件 14 log4j.appender.A2.File=E:\\logs\\test.log 15 #定义A2输出文件的最大长度 16 log4j.appender.A2.MaxFileSize = 1KB 17 #定义A2的备份文件数 18 log4j.appender.A2.MaxBackupIndex = 3 19 #定义A2的布局模式为PatternLayout 20 log4j.appender.A2.layout=org.apache.log4j.PatternLayout 21 #定义A2的输出模式 22 log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss}:%p %t %c - %m%n 23 24 #定义A3输出到数据库 25 log4j.appender.A3=org.apache.log4j.jdbc.JDBCAppender 26 log4j.appender.A3.URL=jdbc:mysql://localhost:3306/log4j 27 log4j.appender.A3.driver=com.mysql.jdbc.Driver 28 log4j.appender.A3.user=root 29 log4j.appender.A3.password=root 30 #定义A3的布局和执行的SQL语句 31 log4j.appender.A3.layout=org.apache.log4j.PatternLayout 32 log4j.appender.A3.layout.ConversionPattern=INSERT INTO log4j(createDate,thread,level,class,message) values(\'%d\',\'%t\',\'%-5p\',\'%c\',\'%m\')
5.编写Java代码:在src下新建com.log4j.test.Test1.java类
package com.log.test; import java.io.IOException; import java.util.Properties; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; /** * 将日志输出到控制台、文件、数据库 * <一句话功能简述> * <功能详细描述> * * @author Administrator * @version [版本号, 2015年9月1日] * @see [相关类/方法] * @since [产品/模块版本] * @author 95杨 */ public class Test1 { static Logger logger = Logger.getLogger(Test1.class.getName()); public static void main(String[] args) throws IOException { Properties pro = new Properties(); pro.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("log4j.properities")); PropertyConfigurator.configure(pro); logger.debug("--debug start"); logger.info("info..."); logger.warn("warn..."); logger.error("error..."); logger.fatal("fatal..."); } }
6.运行结果:
逃避不一定躲得过,面对不一定最难过