log4j的简单应用(转载)
当程序有错误时,我们就需要找出错误的地方并进行验证,怎样才能准确快速的找到出错的地方呢,那就是在程序运行时在控制台上输出相关的信息,从而可以判断程序的运行顺序以及出错的位置。以前总是习惯使用System.out.println();进行信息输出,现在老师介绍了另一种输出日志的方法,那就是log4j。
下面对log4j进行简单介绍:Log4j中有三个主要的组件,它们分别是 Logger、Appender和Layout。1.Appender则是用来指明将所有的log信息存放到什么地方,Log4j中支持多种appender,如 console、files、GUI components、NT Event Loggers等,一个Logger可以拥有多个Appender,也就是你既可以将Log信息输出到屏幕,同时存储到一个文件中。2.Layout的作用是控制Log信息的输出方式,也就是格式化输出的信息。3.Log4j中将要输出的Log信息定义了5种级别,依次是FATAL、ERROR、WARN、INFO、DEBUG,当输出时,只有级别高过配置文件中规定的级别信息才能真正的输出。Log4j支持两 种格式的配置文件:XML格式和Java的property格式。
看一个demo:新建一个Log4jDemo的javaWeb工程,建一个Demo1.java
代码如下:
package com.dr.demo1; import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; public class Demo1 extends HttpServlet{
private static Logger log = Logger.getLogger(Demo1.class);
public void doGet(HttpServletRequest request,HttpServletResponse response){
log.info("welcome to log4j demo!");
} }
在web.xml中进行配置,代码如下:
<servlet>
<servlet-name>demo</servlet-name>
<servlet-class>com.dr.demo1.Demo1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>demo</servlet-name>
<url-pattern>/demo</url-pattern>
</servlet-mapping>
导入log4j.jar和log4j.propertie配置文件,配置文件代码如下:
#级别由高到低依次是:fatal、error、warn、info、debug
log4j.rootLogger=INFO,R,stdout
#debug 无法打印
#log4j.rootLogger=ERROR,R,stdout
#debug/infor/warn 无法打印
#log4j.rootLogger=DEBUG,R,stdout
#都可以打印
#log4j.rootLogger=warn,R,stdout
#info/debug无法打印
#log4j.rootLogger=fatal,R,stdout
#都不可以打印
#log4j.logger.com.cmcc=DEBUG
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
# 日志信息存放的文件位置
log4j.appender.R.File = ${catalina.home}/logs/fetionwapim.log
log4j.appender.R.DatePattern = yyyy-MM-dd'.log'
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
# %r 自程序开始后消耗的毫秒数
# %t 表示日志记录请求生成的线程
# %p 表示日专语句的优先级
# %r 与日志请求相关的类别名称
# %c 日志信息所在的类名
# %m%n 表示日志信息的内容
有关代码的说明已经在配置文件中说了,在此就不再多做说明。
在浏览器中输入访问地址,在控制台上就会打印出信息:
2011-01-18 14:52:39,531 [http-8080-1] [com.dr.demo1.Demo1] [INFO] - welcome to log4j demo!
就到这吧,有不对的地方希望各位大虾不吝赐教!
log4j的简单应用(转载)的更多相关文章
- log4j.xml简单配置实现在控制台打印sql执行语句【加注释】
转: log4j.xml简单配置实现在控制台打印sql执行语句 2017年09月27日 13:02:34 艾然丶 阅读数 8804 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协 ...
- Log4j使用教程 (转载http://www.codeceo.com/article/log4j-usage.html)
日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录.在apache网站:jakarta.apache.org/log4j 可以免费下载到Log ...
- (转)log4j(七)——log4j.xml简单配置样例说明
背景:在公司中警察需要做技术支持,查看日志,而查看日志首先要自己清楚日志是如何生成的,所以有必要知道日志的前世今生! 转载出处:http://www.cnblogs.com/godtrue/p/644 ...
- VPN理论简单介绍(转载)
标签:VPN理论简单介绍 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://lvnian.blog.51cto.com/715528 ...
- redis在Java web项目的简单应用(转载)
看到一篇关于redis和spring集成的文章,实际测试后,可以.转载以备用.谢谢 亲昵YY! html,body { font-size: 15px } body { font-family: He ...
- log4j(七)——log4j.xml简单配置样例说明
一:测试环境与log4j(一)--为什么要使用log4j?一样,这里不再重述 二:老规矩,先来个栗子,然后再聊聊感受 (1)这里栗子有一点特别呀!给出了包名唉!想必有用,是的,配置文件中要特别说明一下 ...
- Spring 配置log4j和简单介绍Log4J的使用
Log4j 是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口服务器.NT的事 件记录器.UNIX Syslog守护进程等 ...
- Kubernetes1-K8s的简单介绍(转载)
一.简介 1.什么是Kubernetes 简称K8s,用8代替8个字符"ubernerte"而成的速写,K8s是一个开源的容器编排平台,它是一个跨主机集群的开源容器调度平台,用于管 ...
- 用VC调用EXCEL简单代码(转载自越长大越孤单,觉得很好)
首先在stdafx.h里加入对IDispatch接口提供支持的头文件: #include <afxDisp.h> 再在应用程序类的InitInstance()函数里加入: AfxOleIn ...
随机推荐
- LINQ之路 5:LINQ查询表达式
书写LINQ查询时又两种语法可供选择:方法语法(Fluent Syntax)和查询表达式(Query Expression). LINQ方法语法的本质是通过扩展方法和Lambda表达式来创建查询.C# ...
- AJAX 简介
什么是 AJAX ? AJAX = 异步 JavaScript 和 XML. AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味 ...
- SpringMVC后缀
<!-- 在这里,使用*.html为后缀的URL都能被baobaotao Servlet截获,进而转由SpringMVC框架进行处理.在 Struts框架中,一般将URL后缀配置为*.do:在w ...
- iOS - OC 内存管理
1.OC 基本内存管理模型 1.1 自动垃圾收集 在 OC 2.0 中,有一种称为垃圾收集的内存管理形式.通过垃圾收集,系统能够自动监测对象是否拥有其他的对象,当程序执行需要空间的时候,不再被引用的对 ...
- [转载] C++ 程序员快过来围观:非常实用全面的 C++ 资源
原文: http://codecloud.net/c-plus-plus-resource-2983.html 绝对是c++开发者的福音啊, 必须推荐. 这次的资源涉及到了标准库.Web应用框架.人工 ...
- Android 面试题总结
Android 面试题总结(不断更新) 1.INETNT几种有关Activit的启动方式FLAG_ACTIVITY_BROUGHT_TO_FRONT 将ACTIVITY带到最前面FLAG_ACTIVI ...
- 2 CSS
2 CSS CSS基础 html 在一个网页中负责的事情是一个页面的结构css(层叠样式表) 在一个网页中主要负责了页面的数据样式. 编写css代码的方式: 第一种: 在style标签中编写c ...
- 扩展spring data jpa的数据更新方法时注意事项
//此处必须加@Transactional,否则不能运行,报错 @Transactional @Modifying @Query("update ExamItem a set a.versi ...
- 转载:最大子段和问题(Maximum Interval Sum)
一.问题描述 给定长度为n的整数序列,a[1...n], 求[1,n]某个子区间[i , j]使得a[i]+…+a[j]和最大.或者求出最大的这个和. 例如(-2,11,- ...
- HTML常用的特殊字符格式
空格: 版权号:©注册商标:®":quot; ':'&:&<:<>:> ©:© «:« ®:® ¯:¯ ¼:¼ (14表示四分之一 ...