在web项目用中我们可以用log4j记录后台日志,还可以进行bug显示,那我们要怎么连接数据库呢
1、 数据库中表的结构
log_date varchar2(50)
log_level varchar2(5)
location varchar2(100)
message varchar2(1000)
建表的sql:
CREATE TABLE LOGGING
(
LOG_DATE VARCHAR2(50) NOT NULL,
LOG_LEVEL VARCHAR2(5) NULL,
LOCATION VARCHAR2(100) NULL,
MESSAGE VARCHAR2(1000) NULL
)
2、 Log4j.properties中的配
log4j.rootLogger=ERROR,stdout,JDBC
说明:这里的JDBC要和后面的一致
log4j.addivity.org.apache=true
//数据库的配置
log4j.appender.JDBC=org.apache.log4j.jdbc.JDBCAppender
//数据库驱动
log4j.appender.JDBC.driver=oracle.jdbc.driver.OracleDriver
//数据库url
log4j.appender.JDBC.URL=jdbc:oracle:thin:@192.168.40.64:1521:ORCL
//用户名和密码
log4j.appender.JDBC.user=privilege
log4j.appender.JDBC.password=privilege
log4j.appender.JDBC.layout=org.apache.log4j.PatternLayout
//插入语句
log4j.appender.JDBC.sql=INSERT INTO LOGGING (log_date, log_level, location, message) VALUES ('%d{ISO8601}', '%-5p', '%C,%L', '%m')
插入sql语句参数的讲解:
l %d输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MM-dd HH:mm:ss},输出类似:2005-7-19 17:49:27,刚好适合插入SQLServer;
l %t 产生该日志事件的线程名;
l %p 日志的log_level,如DEBUG、WARN或者INFO;
l %C 输出所属的类目,通常就是所在类的全名,如“iNotes.Default”;
l %L 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
l %m 日志的内容;
置