用Log4j 将日志保存到数据库

 

Log4j 的这一功能不错比较实用,  近段时间需要用到这个, 在此之前一直没怎么用过. 网上搜索一下, 还不少这样的文章,  随后又公司前段时间对开发人员做的培训资料翻个遍找到了. 现在将这些记录一下.  以备不时之需啊!

 

 

1. 创建日志表

 

CREATE TABLE [dbo].[LogInfo] (
 [GUID] [int] IDENTITY (1, 1) NOT NULL ,   -- 流水号
 [DATE] [datetime]NULL ,  --时间
 [THREAD] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,  --当前线程
 [LEVEL] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,--当前级别

 [CLASS] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,--当前java程序/方法

[MESSAGES] [varchar] (2000) COLLATE Chinese_PRC_CI_AS NULL ---当前输出信息
)

 

2. 配置log4j.properties

 

log4j.rootLogger=DEBUG,CONSOLE,DATABASE

log4j.addivity.org.apache=true  

# JDBC Appender  

log4j.appender.DATABASE.Threshold=INFO

log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender

#log4j.appender.DATABASE.BufferSize=10

log4j.appender.DATABASE.URL=jdbc:microsoft:sqlserver://localhost;DatabaseName=LogInfoTest  

log4j.appender.DATABASE.driver=com.microsoft.jdbc.sqlserver.SQLServerDriver

log4j.appender.DATABASE.user= sa

log4j.appender.DATABASE.password= 1234

log4j.appender.DATABASE.sql=INSERT INTO YOU_LOG_TABLE  VALUES ('%d{yyyy-MM-dd HH:mm:ss}', '%t', '%p', '%l', '%m')

log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout

 

 

%d %t %p %l %m %n  说明:

 

1) %d输出日志时间点的日期或时间,

2) %t  产生该日志事件的线程名

3) %p 日志的log_level,如DEBUGWARN或者INFO

4) %c  输出所属的类目,通常就是所在类的全名,如“iNotes.Default”;

5) %m 日志的内容;

6) %l  输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。 <script language=javascript src="/js/google_ads_300_250.js"></script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type=text/javascript></script>

7) %n  输出一个回车换行符,Windows平台为“ ”,Unix平台为“

 

程序代码: 略(相信自己的能力, 这些应该可以写的出来)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,针对您的问题,我可以给您提供以下思路: 使用log4j日志信息保存数据库,需要进行以下步骤: 1. 创建数据库表,用于日志信息。例如: ```sql CREATE TABLE `log` ( `id` int(11) NOT NULL AUTO_INCREMENT, `logger` varchar(255) DEFAULT NULL, `level` varchar(50) DEFAULT NULL, `message` text, `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ``` 2. 创建Java项目,导入log4j和mysql的依赖。 3. 在log4j.properties文件中配置log4j的输出方式为JDBCAppender。例如: ```properties log4j.rootLogger=debug, db log4j.appender.db=org.apache.log4j.jdbc.JDBCAppender log4j.appender.db.URL=jdbc:mysql://localhost:3306/test log4j.appender.db.driver=com.mysql.jdbc.Driver log4j.appender.db.user=root log4j.appender.db.password=root log4j.appender.db.sql=INSERT INTO log(logger, level, message) VALUES('%c', '%p', '%m') ``` 其中,URL、driver、user、password是连接数据库的参数,sql是插入日志信息的SQL语句。 4. 在Java代码中使用log4j输出日志信息。例如: ```java import org.apache.log4j.Logger; public class TestLog { private static final Logger logger = Logger.getLogger(TestLog.class); public static void main(String[] args) { logger.debug("debug message"); logger.info("info message"); logger.warn("warn message"); logger.error("error message"); logger.fatal("fatal message"); } } ``` 运行程序后,log4j会自动将日志信息插入到数据库表中。 以上就是使用log4j日志信息保存数据库的一般思路,希望对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值