spring使用log4j,可以有2种方法。

1、在web.xml里不做任何配置。

log4j.properties放在classpath根目录下,

这时候生成的日志文件就没有相对路径,如果写相对路径,则会生成在安装tomcat的根路径下。

2、在web.xml设置。

  1. <context-param>
  2. <param-name>log4jConfigLocation</param-name>
  3. <param-value>WEB-INF/classes/log4j.properties</param-value>
  4. </context-param>
  5. <context-param>
  6. <param-name>webAppRootKey</param-name>
  7. <param-value>myappfuse.root</param-value>
  8. </context-param>
  9. <listener>
  10. <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  11. </listener>
  12. <listener>
  13. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  14. </listener>

打印参数: Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下:

%p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,

log4j.rootLogger = INFO,stdout  这句中的INFO是设置了输出该级别以上的日志

INFO,WARN,ERROR,FATAL等消息都会输出。哪到底每条消息是哪个级别呢?%p就是输出该条消息的级别。

%d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MM-dd HH:mm:ss,SSS},输出类似:2011-10-18 22:10:28,921 
%r: 输出自应用启动到输出该log信息耗费的毫秒数 
%c: 输出日志信息所属的类目,通常就是所在类的全名 
%t: 输出产生该日志事件的线程名 
%l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。 
%x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。 
%%: 输出一个"%"字符 
%F: 输出日志消息产生时所在的文件名称 
%L: 输出代码中的行号 
%m: 输出代码中指定的消息,产生的日志具体信息 
%n: 输出一个回车换行符,Windows平台为"\r\n",Unix平台为"\n"输出日志信息换行

可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如: 
1)%20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。 
2)%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,"-"号指定左对齐。 
3)%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。 
4)%20.30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边交远销出的字符截掉

测试代码

  1. import org.apache.log4j.Logger;
  2. public class HelloLog4j {
  3. private static Logger logger = Logger.getLogger(HelloLog4j.class);
  4. /**
  5. * @param args
  6. */
  7. public static void main(String[] args) {
  8. // System.out.println("This is println message.");
  9. // 记录debug级别的信息
  10. logger.debug("This is debug message.");
  11. // 记录info级别的信息
  12. logger.info("This is info message.");
  13. // 记录error级别的信息
  14. logger.error("This is error message.");
  15. }
  16. }

Log4j写入数据库详解

http://blog.csdn.net/ziruobing/article/details/3919501

Log4j学习汇总—–配置详解

http://blog.csdn.net/meng2602956882/article/details/16951643

转:log4j的使用简介的更多相关文章

  1. Log4J的入门简介学习【转】

    原文:http://blog.csdn.net/lengyuhong/article/details/5832799 简介: Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以 ...

  2. log4j安装与简介

    问题描述:     在应用程序中添加日志记录总的来说基于三个目的:    (1) 监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作:     (2) 跟踪代码运行时轨迹,作为日 ...

  3. log4j Logger 使用简介

    项目结构: log4j.properties 内容: log4j.rootCategory=info,stdout log4j.appender.stdout=org.apache.log4j.Con ...

  4. log4j使用快速入门【转】

    1.引言 在应用程序中添加日志记录总的来说基于三个目的: .监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作 .跟踪代码运行时轨迹,作为日后审计的依据 .担当集成开发环境中的调 ...

  5. Log4J入门教程(一) 入门例程

    Log4J的入门简介学习 简介: Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口服务器.NT的事件记录器.U ...

  6. log4j快速入门

    转自:http://blog.csdn.net/yanwushu/article/details/7581255 1.引言 在应用程序中添加日志记录总的来说基于三个目的: .监视代码中变量的变化情况, ...

  7. [JavaWeb]Log4j的前因后果

    Log4j的前因后果 简介 Log4j的进化史 Log4J的三大组件: Logger:日志记录器,负责收集处理日志记录 (如何处理日志) Appender:日志输出目的地,负责日志的输出 (输出到什么 ...

  8. 走进JavaWeb技术世界9:Java日志系统的诞生与发展

    本文转自[码农翻身] ## 一个著名的日志系统是怎么设计出来的? # 1前言 Java帝国在诞生之初就提供了集合.线程.IO.网络等常用功能,从C和C++领地那里吸引了大量程序员过来加盟,但是却有意无 ...

  9. Log4j简介

    Log4J日志配置详解   一.Log4j简介Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和 ...

随机推荐

  1. Python代码运行应该注意哪些问题?

    Python作为近年来热度一度高涨的编程语言,非常受广大程序员的喜爱,用过之后发现这门语言有很多特点.比如作为一门动态语言它的变量是信手拈来就可以用的,甚至比js还简单,也没有编程语言常见的大括号包含 ...

  2. [转载]linux awk命令详解

    简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...

  3. BZOJ1925或洛谷2467 [SDOI2010]地精部落

    BZOJ原题链接 洛谷原题链接 先讲下关于波动数列的\(3\)个性质. 性质\(1\):对于数列中的每一对\(i\)和\(i + 1\),若它们不相邻,那么交换这两个数形成的依旧是一个波动数列. 性质 ...

  4. 离线在MVC4中的使用

    最近在项目中用到了离线功能,自己感觉挺高端的,但是遇到了一些问题. 现在工作告一小段落,就把这次离线工作中遇到的关键技术点和难题记录下来. 什么是离线,什么时候需要离线 离线:Offline,不联网也 ...

  5. 07. pt-fifo-split

    iostat -dxm 1 42 1>iostat.log 2>&1 ---------------------------------------- #!/bin/bash of ...

  6. Python之路(第五篇) Python基本数据类型集合、格式化、函数

    一.变量总结 1.1 变量定义 记录某种状态或者数值,并用某个名称代表这个数值或状态. 1.2 变量在内存中的表现形式 Python 中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是 ...

  7. SPring中quartz的配置(可以用实现邮件定时发送,任务定时执行,网站定时更新等)

    http://www.cnblogs.com/kay/archive/2007/11/02/947372.html 邮件或任务多次发送或执行的问题: 1.<property name=" ...

  8. requestAnimationFrame 完美兼容封装

    完美兼容封装: (function() { var lastTime = 0; var vendors = ['webkit', 'moz']; for(var x = 0; x < vendo ...

  9. oracle迁移

    #导出scott的数据,排除 table_a table_b expdp system/password schemas=scott directory=datadir dumpfile=scott_ ...

  10. SpringBoot 多环境配置

    转载:https://www.cnblogs.com/gdpuzxs/p/7191436.html 在我们的实际开发中,一般都有三套环境,开发环境,测试环境,生产环境,三套环境的数据库连接配置也有所不 ...