以下为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中的代码如下:

  1. public class LoginUserAction extends Action {
  2. private UserDao userDAO;
  3. private static Logger log = Logger.getLogger(LoginUserAction.class);
  4. /**
  5. * 获得UserDAO的对象
  6. * @param userDAO
  7. */
  8. public void setUserDAO(UserDao userDAO) {
  9. this.userDAO = userDAO;
  10. }
  11. public ActionForward execute(ActionMapping mapping, ActionForm form,
  12. HttpServletRequest request, HttpServletResponse httpservletresponse)
  13. throws Exception {
  14. // 设置request的字符集
  15. request.setCharacterEncoding("utf-8");
  16. LoginUserForm loginform = (LoginUserForm) form;
  17. log.warn("用户:"+loginform.getUsername()+"登陆"+"    "+"IP:"+request.getRemoteAddr());
  18. //调用方法获得一个LoginUserForm
  19. loginform = (LoginUserForm)userDAO.getAccount(loginform);
  20. return mapping.findForward("success");
  21. }
  22. }

private static Logger log = Logger.getLogger(LoginUserAction.class);
log.warn("用户:"+loginform.getUsername()+"登陆"+"    "+"IP:"+request.getRemoteAddr());

注意一下红色的字,这两行主要是与日志关联的,第一红行是建立一个日志对象,第二个红行是要往数据库中写入的日志。

在log4j.properties中的代码:

  1. log4j.rootLogger=WARN,DATABASE
  2. #直接使用log4j包中的文件
  3. log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
  4. #与数据库建立连接
  5. log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test
  6. log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver
  7. log4j.appender.DATABASE.user=root
  8. log4j.appender.DATABASE.password=icy
  9. #指定要插入数据库的格式,具体参数的格式看一开始给出的文档
  10. 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将日志写入数据库的更多相关文章

  1. 怎样借助log4j把日志写入数据库中

            log4j是一个优秀的开源日志记录项目.我们不仅能够对输出的日志的格式自定义,还能够自定义日志输出的目的地,比方:屏幕.文本文件,数据 库,甚至能通过socket输出.本节使用MySQ ...

  2. 使用log4j将日志写入数据库并发送邮件

    参考: 快速了解Log4J 1.log4j的初始配置 参考该问的配置即可完整的实现写入数据库及发送邮件的功能 a.写入数据库需要配置相应的jar包,数据库类型不同,请使用指定的数据库配置,该文仅限于o ...

  3. 使用log4j让日志写入数据库

    之前做的一个项目有这么个要求,在日志管理系统里,需要将某些日志信息存储到数据库里,供用户.管理员查看分析.因此我就花了点时间搞了一下这一功能,各位请看. 摘要:我们知道log4j能提供强大的可配置的记 ...

  4. logback日志写入数据库(mysql)配置

    如题  建议将日志级别设置为ERROR.这样可以避免存储过多的数据到数据中. 1  logback 配置文件(如下) <?xml version="1.0" encoding ...

  5. mySql---logback日志写入数据库(mysql)配置

    如题  建议将日志级别设置为ERROR.这样可以避免存储过多的数据到数据中. 1  logback 配置文件(如下) <?xml version="1.0" encoding ...

  6. log4j日志写入数据库

    # log4j写入数据库 ### 前言-----------------------------log4j是写入日志到控制台和文件很常见,但是写入到数据库不多见.做性能测试写入到数据库,统计方便些. ...

  7. log4j学习日记-写入数据库

    1.首先创建日志数据库 用的是MySQL CREATE TABLE `td_log` (   `lid` int(11) NOT NULL AUTO_INCREMENT,   `lusername` ...

  8. mvc log4net将日志写入数据库失败解决之道——开启内部调试

    项目信息:spring mvc5  EF6 数据库:sql2008r2 log4net版本:1.2.10.0 第一天: 1.思路一:配了半天,一直无法写入数据库,网上搜了一大堆的资料,都没能解决,怀疑 ...

  9. log4net 将日志写入数据库

    asp.net利用log4net写入日志到SqlServer数据库,Log4net是一个开源的错误日志记录项目,易用性强,源自log4j,品质值得信赖. 下面就我的安装部署log4net到MS sql ...

随机推荐

  1. JavaScript hash

    location.hash -- 返回URL#后面的内容,如果没有#,返回空 hash,中文"哈希" 引用网址:http://www.dreamdu.com/javascript/ ...

  2. 格式化Curl返回的Json字符

    格式化Curl返回的Json字符 学习了:https://blog.csdn.net/guijiaoba/article/details/78235523 , 使用python工具 curl xxx ...

  3. ckeditor 实现图片上传以及预览(亲测有效)

    引用ckeditor <script type="text/javascript" src="static/ckeditor/ckeditor.js"&g ...

  4. springMVC之增删改查

    一.核心原理 1. 用于发送请求给server: /home.htm 2. 请求被DispatchServlet拦截到 3. DispatchServlet通过HandleMapping检查url有没 ...

  5. gre tunnel搭建

    应用场景: 客户端(client)与服务器A在同一个运营商网络,应用部署在服务器B,服务器A .B之间建立tunnel,A设置dnat,client通过访问A的8000端口来访问服务器B,B返回的响应 ...

  6. 打造通用的Android下拉刷新组件(适用于ListView、GridView等各类View)

    前言 近期在做项目时,使用了一个开源的下拉刷新ListView组件.极其的不稳定,bug还多.稳定的组件又写得太复杂了,jar包较大.在我的一篇博客中也讲述过下拉刷新的实现,即Android打造(Li ...

  7. [Swift A]-问号&感叹号

    1.必须赋值的变量,或普通变量 var month:Int println("month:\(month)") 上面这2句代码会提示报错,因为没有赋值 2.再看看如下写法 var ...

  8. POJ 2112 Optimal Milking(最大流)

    题目链接:http://poj.org/problem?id=2112 Description FJ has moved his K (1 <= K <= 30) milking mach ...

  9. 05-maven学习-构建web项目

    1,新增maven项目 然后输入相应包名,项目名,创建如下项目 发现以上有报错,需要进行如下操作: 下面文章转载自:http://blog.csdn.net/zhshulin/article/deta ...

  10. 站点CSS样式不起作用,或仅仅有一部分起作用?随手记

    事件:网页中使用了相同的样式,下半部分正常显示,上半部分样式所有丢失不能显示. 解决:改动了相应的CSS样式文件的编码 这个是最没有想到的解决的方法. 怎样调试:通过右键页面查看编码为UTF-8 或 ...