这里会介绍三种打印日志的方法:控制台Console,文件File,数据库DataBase
1.下载lo4j的jar包并导入project
2.因为要在数据库添加日志,所以先新建一个库,并新建打印日志的表。
在mysql里新建database:log4j,然后在log4j库里新建table:
CREATE TABLE log4j
(
logId INT NOT NULL AUTO_INCREMENT,/*流水号*/
createDate VARCHAR(45) DEFAULT NULL,/*日志生成时间*/
thread VARCHAR(45) DEFAULT NULL,/*当前线程*/
LEVEL VARCHAR(45) DEFAULT NULL,/*当前日志的级别*/
class VARCHAR(45) DEFAULT NULL,/*生成日志的类*/
message VARCHAR(245) DEFAULT NULL,/*日志具体信息*/
PRIMARY KEY(logId)
)
3.在src目录下新建文件:log4j.properities
.在log4j.properities文件中添加配置:(具体怎么写,个人建议不需要记,能理解并且会用,用的次数多了熟而生巧。。。)
#定义3种输出方式:Console,File,DataBase
log4j.rootCategory=INFO,A1,A2,A3 #定义A1输出到控制器
log4j.appender.A1=org.apache.log4j.ConsoleAppender
#定义A1的布局模式为PaternLayout
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
# 定义A1的输出格式
log4j.appender.A1.layout.ConversionPattern=%4p [%t] (%F:%L) - %m%n #定义A2输出到文件
log4j.appender.A2=org.apache.log4j.RollingFileAppender
#定义A2输出到哪个文件
log4j.appender.A2.File=E:\\logs\\test.log
#定义A2输出文件的最大长度
log4j.appender.A2.MaxFileSize = 1KB
#定义A2的备份文件数
log4j.appender.A2.MaxBackupIndex = 3
#定义A2的布局模式为PatternLayout
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
#定义A2的输出模式
log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss}:%p %t %c - %m%n #定义A3输出到数据库
log4j.appender.A3=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.A3.URL=jdbc:mysql://localhost:3306/log4j
log4j.appender.A3.driver=com.mysql.jdbc.Driver
log4j.appender.A3.user=root
log4j.appender.A3.password=root
#定义A3的布局和执行的SQL语句
log4j.appender.A3.layout=org.apache.log4j.PatternLayout
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.运行结果: