以下为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. dedecms织梦 v5.6 两处跨站漏洞

    漏洞版本: dedecms织梦 v5.6 漏洞描述: DedeCMS内容管理系统软件采用XML名字空间风格核心模板:模板全部使用文件形式保存,对用户设计模板.网站升级转移均提供很大的便利,健壮的模板标 ...

  2. docker基本元素和底层实现

    docker是轻量级的操作系统虚拟化解决方案 优点 1.基于操作系统层面 2.启动速度快(秒级) 3.资源利用率高 4.性能高.易管理 docker有3大基本要素 分别是 1.镜像:只读模板,用来创建 ...

  3. 创建带Mipmap的osg::Image

    我们常用osgDB::readImage或者osg::Image::allocateImage()方式创建Image对象, 跟深一步的带Mipmap的Image怎样创建呢? 偶然在分析osgParti ...

  4. 【云计算】Docker容器不能修改hosts文件怎么解决?

    参考资料: http://bbs.csdn.net/topics/390871429 http://tieba.baidu.com/p/4295556808 http://stackoverflow. ...

  5. RS开发日期提示控件默认为昨天之进阶篇

    时隔<RS开发日期提示控件默认为昨天>这篇博文已经很久了,请原谅我隔了这么久才继续来写这篇笔记.也希望读到这篇笔记的朋友可以从这篇笔记中学习到一些关于RS日期控件和JS的一些应用知识,当然 ...

  6. Android下文件的压缩和解压(Zip格式)

    Zip文件结构 ZIP文件结构如下图所示, File Entry表示一个文件实体,一个压缩文件中有多个文件实体. 文件实体由一个头部和文件数据组,Central Directory由多个File he ...

  7. Java程序员的C++回归路(二)

    接前: 之前记录的笔记,终于想起来上传完整. 第7章: 类 定义抽象数据类型 任何对成员对象的访问都可以解释为使用this来访问,即this->member. =default :默认构造函数. ...

  8. jquery uploadify文件上传插件用法精析

      jquery uploadify文件上传插件用法精析 CreationTime--2018年8月2日11点12分 Author:Marydon 一.参数说明 1.参数设置 $("#fil ...

  9. chrome更改缓存位置

      更改chrome浏览器缓存位置 CreateTime--2017年7月20日08:33:14Author:Marydon 一.参考链接 http://jingyan.baidu.com/artic ...

  10. CSDN日报20170401 ——《假设你还是“程序猿”,我劝你别创业!》

    [程序人生]假设你还是"程序猿".我劝你别创业! 作者:北漂周 在IT这一行做得久了,会接触到无数让人哭笑不得的外行话. 「我们就差一个写代码的了」是当中典型的一种,之所以黑它.不 ...