Log4j -日志的配置

配置过程:

导入的jar包:

slf4j-api-1.7.6.jar

slf4j-log4j12-1.7.6.jar

log4j.properties

log4j.rootLogger= DEBUG,stdout,D1
log4j.rootLogger=INFO,stdout,E

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.Threshold=INFO
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern [email protected] lyx:-%d{yyyy-MM-dd HH:mm:ss,SSS} [%p] -[%c] -%m%n

log4j.appender.D1 = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D1.File = ${springLog.root}/WEB-INF/logs/error.log
log4j.appender.D1.Append = true
log4j.appender.D1.Threshold = ERROR
log4j.appender.D1.layout = org.apache.log4j.PatternLayout
log4j.appender.D1.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = ${springLog.root}/WEB-INF/logs/error1.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = INFO
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

web.xml

<!-- log4j日志配置 -->
	<!-- 路径变量值(是服务器的路径) -->
	<context-param>
		<param-name>webAppRootKey</param-name>
		<param-value>springLog.root</param-value>
	</context-param>
	<!-- log4j配置文件 -->
	 <context-param>
		<param-name>log4jConfigLocation</param-name>
		<param-value>classpath:log4j.properties</param-value>
	</context-param> 

 	 <context-param>
	<!-- 	日志页面的刷新间隔 -->
		<param-name>log4jRefreshInterval</param-name>
		<param-value>6000</param-value>
	</context-param>
	<!-- 设置日志监听 -->
	<listener>
		<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
	</listener>

java代码:

package com.controller;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.service.UserService;

/**
 * @author lyx
 *
 * 2015-8-19上午8:53:52
 *
 *com.controller.UserController
 *	TODO
 */
@Controller
@RequestMapping("/user")
public class UserController {

	//private static final Logger log =Logger.getLogger(UserController.class);
	private static final org.slf4j.Logger logger =org.slf4j.LoggerFactory.getLogger(UserController.class);
	@Autowired
	 private UserService service; 

	@RequestMapping("/queryAllInfo")
	@ResponseBody
	public void queryAllInfo(HttpServletRequest request,HttpServletResponse response)
	{

		//当前方法名
		String currentMethod=Thread.currentThread().getStackTrace()[1].getMethodName();
		logger.info("currentThread call currentMethod is:"+currentMethod);
		logger.debug("debug");
		logger.error("error");
	}

}

内容解释

输出方式appender一般有5种:

org.apache.log4j.RollingFileAppender(滚动文件,自动记录最新日志)

org.apache.log4j.ConsoleAppender (控制台)

org.apache.log4j.FileAppender (文件)

org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文件)

org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方)

(2). 日记记录的优先级priority,优先级由高到低分为

OFF ,FATAL ,ERROR ,WARN ,INFO ,DEBUG ,ALL。

Log4j建议只使用FATAL ,ERROR ,WARN ,INFO ,DEBUG这五个级别。

(3). 格式说明layout中的参数都以%开始,后面不同的参数代表不同的格式化信息(参数按字母表顺序列出):

%c        输出所属类的全名,可在修改为 %d{Num} ,Num类名输出的维(如:"org.apache.elathen.ClassName",%C{2}将输出elathen.ClassName)

%d       输出日志时间其格式为 %d{yyyy-MM-dd HH:mm:ss,SSS},可指定格式 如 %d{HH:mm:ss}

%l        输出日志事件发生位置,包括类目名、发生线程,在代码中的行数

%n       换行符

%m      输出代码指定信息,如info(“message”),输出message

%p       输出优先级,即 FATAL ,ERROR 等

%r        输出从启动到显示该log信息所耗费的毫秒数

%t        输出产生该日志事件的线程名

详细网站:

如何在log4j.properties文件中使用相对路径:http://blog.csdn.net/wang12/article/details/6395602

spring mvc中log4j的配置与使用:http://rockelixir.iteye.com/blog/1902352

配置Log4j(很详细): http://blog.csdn.net/azheng270/article/details/2173430

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-03 23:16:15

Log4j -日志的配置的相关文章

log4j日志基本配置

Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置. 1.Loggers Loggers组件在此系统中被分为五个级别:DEBUG.INFO.WARN.ERROR和FATAL.这五个级别是有顺序的,DEBUG < INFO < WARN < ERROR < FATAL,分别用

log4j日志输出配置

1.log4j的文件配置: log4j.rootLogger = debug,stdout,I,E #### 控制台打印 stdout:标准输出### #log4j.appender.stdout = org.apache.log4j.ConsoleAppender #log4j.appender.stdout.Target = System.out #log4j.appender.stdout.layout = org.apache.log4j.PatternLayout #log4j.app

Spring MVC中 log4j日志文件配置相对路径

log4j和web.xml配置webAppRootKey 的问题 1 在web.xml配置 <context-param>  <param-name>webAppRootKey</param-name>  <param-value>web.sample.root</param-value></context-param> 可以用System.getProperty("web.sample.root")来获取属性值.

java项目log4j日志打印配置

#定义输出级别和输出平台  添加DEBUG表示打印sql 语句 log4j.rootLogger=DEBUG,INFO,ERROR,stdout,R log4j.category.org.springframework = INFOlog4j.category.freemarker = INFOlog4j.category.org.mybatis.spring=INFOlog4j.category.net.joyphper = DEBUG ### appender.R输出到日志文件 ### lo

log4j日志的配置

在项目开发中,记录错误日志方便调试.便于发现系统运行过程中的错误.便于后期分析, 在java中,记录日志有很多种方式,比如说log4j log4j需要导入的包: commons-loggin.jar log4j.jar 修改配置文件 在log4j.properties写入 ### 设置级别和目的地(这里多个目的地) ###log4j.rootLogger = DEBUG,CONSOLE,zhangsanLog### 这里的me是包,也就是在这个包记录日志时,是只记录debug及以上级别的日志lo

log4j日志properties配置

#Console Log log4j.rootLogger=INFO,console,debug,info,warn,error LOG_PATTERN=[%d{yyyy-MM-dd HH:mm:ss.SSS}] boot%X{context} - %5p [%t] --- %c{1}: %m%n #A1--Print log to Console log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.con

log4j日志pattern配置

c category的名称,可使用{n}限制输出的精度.例如:logger名为"a.b.c",%c{2}将输出"b.c". C 产生log事件的java完全限定类名.可使用{n}限制输出的精度.例如:"org.apache.xyz.SomeClass",%C{2}将输出"SomeClass". d 时间和日期的输出格式,例如:%d{yyyy MM dd HH:mm:ss,SS},可不带后面的日期格式字符. F 产生log事件的

Spring项目配置log4j日志功能

一,添加log4j依赖包 可从官网上下载该依赖包log4j-x.x.xx.jar,下载后 build path,添加依赖包如使用maven,可以添加如下依赖 <!-- https://mvnrepository.com/artifact/log4j/log4j --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>

java log4j基本配置及日志级别配置详解

java log4j日志级别配置详解 1.1 前言 说出来真是丢脸,最近被公司派到客户公司面试外包开发岗位,本来准备了什么redis.rabbitMQ.SSM框架的相关面试题以及自己做过的一些项目回顾,信心满满地去面试,结果别人一上来就问到了最近项目使用的日志系统是什么?日志级别是怎么配置的?当时我都蒙X了,平时都是项目经理搭的,我自己也是随便上网一搜往配置文件一黏贴就OK了.我就这么说完后面试官深深定了我一眼,当时我的内心羞愧到...... 1.2 闲话少说,讲讲日志的发展故事(如果已经了解的