用log4j将日志写入数据库
以下为log4j中的配置参数:
%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%t 输出产生该日志事件的线程名;
%n 输出一个回车换行符,Windows平台为"\r\n",Unix平台为"\n"
%d 输出日志时间的日期或时间,默认格式为ISO8601,也可以在其后指定格式,
比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2008年10月18日22:10:28:832
%c 输出所属的类目,通常就是所在类的全名,如“iNotes.Default”;
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数
%L 输出代码中的行数;
%F 输出代码中的文件名;
要注意大小写
在Java工程下,日志文件(log4j.properties)要放在src目录下,在web工程中,日志文件(log4j.properties)也要放在src根目录下。
在Action中的代码如下:
- public class LoginUserAction extends Action {
- private UserDao userDAO;
- private static Logger log = Logger.getLogger(LoginUserAction.class);
- /**
- * 获得UserDAO的对象
- * @param userDAO
- */
- public void setUserDAO(UserDao userDAO) {
- this.userDAO = userDAO;
- }
- public ActionForward execute(ActionMapping mapping, ActionForm form,
- HttpServletRequest request, HttpServletResponse httpservletresponse)
- throws Exception {
- // 设置request的字符集
- request.setCharacterEncoding("utf-8");
- LoginUserForm loginform = (LoginUserForm) form;
- log.warn("用户:"+loginform.getUsername()+"登陆"+" "+"IP:"+request.getRemoteAddr());
- //调用方法获得一个LoginUserForm
- loginform = (LoginUserForm)userDAO.getAccount(loginform);
- return mapping.findForward("success");
- }
- }
private static Logger log = Logger.getLogger(LoginUserAction.class);
log.warn("用户:"+loginform.getUsername()+"登陆"+" "+"IP:"+request.getRemoteAddr());
注意一下红色的字,这两行主要是与日志关联的,第一红行是建立一个日志对象,第二个红行是要往数据库中写入的日志。
在log4j.properties中的代码:
- log4j.rootLogger=WARN,DATABASE
- #直接使用log4j包中的文件
- log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
- #与数据库建立连接
- log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test
- log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver
- log4j.appender.DATABASE.user=root
- log4j.appender.DATABASE.password=icy
- #指定要插入数据库的格式,具体参数的格式看一开始给出的文档
- log4j.appender.DATABASE.sql=INSERT INTO log4j (log_date, log_level, location, message) VALUES ('%d{ISO8601}', '%p', '%C,%L', '%m')

这样以来就可以向数据库中写入日志了。
原文: http://blog.csdn.net/zhengbo0/article/details/38731617
用log4j将日志写入数据库的更多相关文章
- 怎样借助log4j把日志写入数据库中
log4j是一个优秀的开源日志记录项目.我们不仅能够对输出的日志的格式自定义,还能够自定义日志输出的目的地,比方:屏幕.文本文件,数据 库,甚至能通过socket输出.本节使用MySQ ...
- 使用log4j将日志写入数据库并发送邮件
参考: 快速了解Log4J 1.log4j的初始配置 参考该问的配置即可完整的实现写入数据库及发送邮件的功能 a.写入数据库需要配置相应的jar包,数据库类型不同,请使用指定的数据库配置,该文仅限于o ...
- 使用log4j让日志写入数据库
之前做的一个项目有这么个要求,在日志管理系统里,需要将某些日志信息存储到数据库里,供用户.管理员查看分析.因此我就花了点时间搞了一下这一功能,各位请看. 摘要:我们知道log4j能提供强大的可配置的记 ...
- logback日志写入数据库(mysql)配置
如题 建议将日志级别设置为ERROR.这样可以避免存储过多的数据到数据中. 1 logback 配置文件(如下) <?xml version="1.0" encoding ...
- mySql---logback日志写入数据库(mysql)配置
如题 建议将日志级别设置为ERROR.这样可以避免存储过多的数据到数据中. 1 logback 配置文件(如下) <?xml version="1.0" encoding ...
- log4j日志写入数据库
# log4j写入数据库 ### 前言-----------------------------log4j是写入日志到控制台和文件很常见,但是写入到数据库不多见.做性能测试写入到数据库,统计方便些. ...
- log4j学习日记-写入数据库
1.首先创建日志数据库 用的是MySQL CREATE TABLE `td_log` ( `lid` int(11) NOT NULL AUTO_INCREMENT, `lusername` ...
- mvc log4net将日志写入数据库失败解决之道——开启内部调试
项目信息:spring mvc5 EF6 数据库:sql2008r2 log4net版本:1.2.10.0 第一天: 1.思路一:配了半天,一直无法写入数据库,网上搜了一大堆的资料,都没能解决,怀疑 ...
- log4net 将日志写入数据库
asp.net利用log4net写入日志到SqlServer数据库,Log4net是一个开源的错误日志记录项目,易用性强,源自log4j,品质值得信赖. 下面就我的安装部署log4net到MS sql ...
随机推荐
- JavaScript hash
location.hash -- 返回URL#后面的内容,如果没有#,返回空 hash,中文"哈希" 引用网址:http://www.dreamdu.com/javascript/ ...
- 格式化Curl返回的Json字符
格式化Curl返回的Json字符 学习了:https://blog.csdn.net/guijiaoba/article/details/78235523 , 使用python工具 curl xxx ...
- ckeditor 实现图片上传以及预览(亲测有效)
引用ckeditor <script type="text/javascript" src="static/ckeditor/ckeditor.js"&g ...
- springMVC之增删改查
一.核心原理 1. 用于发送请求给server: /home.htm 2. 请求被DispatchServlet拦截到 3. DispatchServlet通过HandleMapping检查url有没 ...
- gre tunnel搭建
应用场景: 客户端(client)与服务器A在同一个运营商网络,应用部署在服务器B,服务器A .B之间建立tunnel,A设置dnat,client通过访问A的8000端口来访问服务器B,B返回的响应 ...
- 打造通用的Android下拉刷新组件(适用于ListView、GridView等各类View)
前言 近期在做项目时,使用了一个开源的下拉刷新ListView组件.极其的不稳定,bug还多.稳定的组件又写得太复杂了,jar包较大.在我的一篇博客中也讲述过下拉刷新的实现,即Android打造(Li ...
- [Swift A]-问号&感叹号
1.必须赋值的变量,或普通变量 var month:Int println("month:\(month)") 上面这2句代码会提示报错,因为没有赋值 2.再看看如下写法 var ...
- POJ 2112 Optimal Milking(最大流)
题目链接:http://poj.org/problem?id=2112 Description FJ has moved his K (1 <= K <= 30) milking mach ...
- 05-maven学习-构建web项目
1,新增maven项目 然后输入相应包名,项目名,创建如下项目 发现以上有报错,需要进行如下操作: 下面文章转载自:http://blog.csdn.net/zhshulin/article/deta ...
- 站点CSS样式不起作用,或仅仅有一部分起作用?随手记
事件:网页中使用了相同的样式,下半部分正常显示,上半部分样式所有丢失不能显示. 解决:改动了相应的CSS样式文件的编码 这个是最没有想到的解决的方法. 怎样调试:通过右键页面查看编码为UTF-8 或 ...