使用Log4j输出日志至数据库

news/2024/5/18 23:27:27 标签: log4j, JDBC, Apache, SQL, Unix
使用Log4j输出日志至数据库

首先创建一数据库表说明:

字段描述
GUID流水号
DATE时间
THREAD当前线程
LEVEL当前级别
CLASS当前java程序/方法
MESSAGES当前输出信息
  

log4j.properties如下配置:

<!--StartFragment -->

 

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=you jdbcurl

 

log4j.appender.DATABASE.driver=you jdbc driver

 

log4j.appender.DATABASE.user=

 

log4j.appender.DATABASE.password=

 

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

<!--StartFragment --> 

下面我们对“%d %t %p %l %m %n”一一讲解:

 

l         %d输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MM-dd HH:mm:ss},输出类似:2005-7-19 17:49:27,刚好适合插入SQLServer

 

l         %t  产生该日志事件的线程名;

 

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

 

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

 

l         %m 日志的内容;

 

l         %l  输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。如write2database.main(write2database.java:33)

 

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


http://www.niftyadmin.cn/n/872637.html

相关文章

wpa_suplicant 详解 文章收集

wpa_suplicant 详解 文章收集 参考资料 https://w1.fi/wpa_supplicant/devel/index.html https://zhuanlan.zhihu.com/p/24246712 https://www.cnblogs.com/lidabo/p/5062204.html https://blog.csdn.net/jy1075518049/article/details/51015141 https://blog.csdn.net/zm199…

程序员应知——把小事做好

程序员应知——把小事做好 在从事软件开发的这些年中&#xff0c;近期越来越多地听到这样的论点&#xff1a;当前的程序员越来越浮躁。我的感觉也是如此&#xff0c;由于在软件公司中&#xff0c;人才流动特别快&#xff0c;因此很多人的职位也变化的比较快&#xff0c;很可能…

STL容器的常见操作的总结

参考资料 https://zhuanlan.zhihu.com/p/363771232 https://mp.weixin.qq.com/s?__bizMzIyNjA5NjgzOQ&mid2247483755&idx1&sn8609a6315727e37a7b7e3f2c594ae2dd&chksme874e2c3df036bd51a356853c3734bb0701d0ae05bed7a4c8651eb4ba1fc260fa033997c22e9&sc…

这领导当的,你该怎么办?

公司有一个部门很不稳定&#xff0c;人员都淘换好几拨了&#xff0c;产品还没有做出个样子&#xff0c;这不最近&#xff0c;产品经理离职又带走了大半的骨干&#xff0c;高层派了另外一个部门的主管过来接这一摊子事儿。 领导是做C出身&#xff0c;从业经验也有二十来年了&am…

程序员应知:你有几种武器

程序员应知&#xff1a;你有几种武器&#xff1f; http://news.csdn.net/a/20100804/277678.html 首先我们必须有一种最趁手最熟悉的武器&#xff0c;有人的是java&#xff0c;有人是vb&#xff0c;还有人是c#等等&#xff0c;这种武器是用来解决大型项目中的问题的&#xff0c…

LINUX 网络套接字函数注释 极简版

socket模型创建流程图 socket 函数 #include <sys/types.h> #include <sys/socket.h> /*** description: 用来建立一个新的 socket* param {int} domain 指定使用何种的地址类型 完整的定义在/usr/include/bits/socket.h * AF_INET/PF_INET ip…

苹果的设计为什么难以复制

我要澄清的是我并不是专门要揭微软的短&#xff0c;这实际是当下软件企业普遍面临的问题&#xff1a;我们怎样有效将设计融入产品&#xff1f;因为&#xff0c;坦率的说&#xff0c;现在的许多UI设计令人头疼的差劲。 Nintendo、苹果、Google和Amazon已提供了优秀设计的例子&a…

IO多路复用_select

端口复用 io 多路复用 支持应用同时在多个文件描述上阻塞 //允许创建端口号相同但IP地址不同的多个socket描述符 int opt 1; setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt));select 接口函数 /** * description: 阻塞等待文件描述状态的改变 * p…