java_log4j使用

13 篇文章 0 订阅
6 篇文章 0 订阅

一、 Log4j是什么?
  Log4j可以帮助调试(有时候debug是发挥不了作 用的)和分析,要下载和了解更详细的内容,还是访问其官方网站吧:
http://jakarta.apache.org/log4j

二、Log4j的概念
   Log4j中有三个主要的组件,它们分别是
Logger、Appender和Layout,Log4j允许开发人员定义多个Logger,每个Logger拥有自己的名字,Logger之间通过名字来表明隶属关系。有一个Logger称为Root,它永远存在,且不能通过名字检索或引用,可以通过Logger.getRootLogger()方法获得,其它Logger通过Logger.getLogger(String name)方法。
   Appender则是用来指明将所有的log信息存放到什么地方,Log4j中支持多种appender,如
console、files、GUI components、NT Event Loggers等,一个Logger可以拥有多个Appender,也就是你既可以将Log信息输出到屏幕,同时存储到一个文件中。
   Layout的作用是控制Log信息的输出方式,也就是格式化输出的信息。
  Log4j中将要输出的Log信息定义了5种级别,依次为DEBUG、INFO、WARN、ERROR和FATAL,当输出时,只有级别高过配置中规定的级别的信息才能真正的输出,这样就很方便的来配置不同情况下要输出的内容,而不需要更改代码,这点实在是方便啊。

三、log4j的使用

1、官网http://jakarta.apache.org/log4j,下载压缩包,现在还有个log4j2使用更加方便,不过本文不牵扯,以后再叙。

2、将压缩包解压,将log4j-1.2.17.jar,添加到项目中去,web项目放在WEB-INF/lib下面,

3、log4j.properties文件,我的存放路径是src/config/,注意下面web.xml中的引用路劲。

 ### set log levels ###
log4j.rootLogger = debug ,  stdout ,  D ,  E

### 输出到控制台 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{1}:%L - %m%n

### 输出到日志文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = /WEB-INF/logs/error.log 
log4j.appender.D.Append = true
log4j.appender.D.Threshold = ERROR 
## 输出DEBUG级别以上的日志
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%t:%r] - [%p] %m%n

每个Logger都被了一个日志级别(log level),用来控制日志信息的输出。日志级别从高到低分为:
A:off         最高等级,用于关闭所有日志记录。
B:fatal       指出每个严重的错误事件将会导致应用程序的退出。
C:error      指出虽然发生错误事件,但仍然不影响系统的继续运行。
D:warm     表明会出现潜在的错误情形。
E:info         一般和在粗粒度级别上,强调应用程序的运行全程。
F:debug     一般用于细粒度级别上,对调试应用程序非常有帮助。
G:all           最低等级,用于打开所有日志记录。

4、web项目需要在web.xml中进行配置

<!--  添加运行日志log4j -->
	<context-param>
		<param-name>log4jConfigLocation</param-name>
		<param-value>WEB-INF/classes/config/log4j.properties</param-value>
	</context-param>
	<listener>  
        <listener-class>  
            org.springframework.web.util.Log4jConfigListener  
        </listener-class>  
        </listener>  
        <listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
注意这个顺序和log4j.properties的文件路径,顺序或路径不对可导致tomcat启动时报错。

5、在需要日志的时候加入 protected final Log log = LogFactory.getLog(getClass());即可

import java.util.List;

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

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.yihaomen.mybatis.inter.IArticleOperation;
import com.yihaomen.mybatis.model.Article;


@Controller
public class ArticleController {
	protected final Log log = LogFactory.getLog(getClass());    //添加运行日志log4j
    @Autowired
    IArticleOperation articleMapper;
    
    @RequestMapping("/articleList")
    public ModelAndView articleList(HttpServletRequest request,HttpServletResponse response){
    	Article article = new Article();
    	article.setTitle("test_title");
    	article.setContent("test_content_5");
    	List<Article> articles = articleMapper.selectArticles(article); 
    	System.out.println(articles.size());
    	ModelAndView mav=new ModelAndView("list");
    	mav.addObject("articles",articles);
    	return mav;
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值