Log4j配置使用的简单教程
Log4j由三个重要的组件构成:日志信息的级别(level),日志信息的输出目的地(Appender),日志信息的输出格式(Layout)。
日志信息的级别从高到低为:
- off 最高等级,用于关闭所有日志记录。
- fatal 指出每个严重的错误事件将会导致应用程序的退出。
- error 指出虽然发生错误事件,但仍然不影响系统的继续运行。
- warm 表明会出现潜在的错误情形。
- info 一般和在粗粒度级别上,强调应用程序的运行全程。
- debug 一般用于细粒度级别上,对调试应用程序非常有帮助。
- all 最低等级,用于打开所有日志记录。
一、log4j的配置格式
log4j.rootLogger = [level] , appenderName1, appenderName2,blablabla...
log4j.appender.appenderName=【Appender日志信息输出目的地】
- org.apache.log4j.ConsoleAppender(控制台),
- org.apache.log4j.FileAppender(文件),
- org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
- org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
- org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
log4j.appender.appenderName.File=日志文件保存目录(如果是输出到控制台,就不用配置这一项了)
log4j.appender.appenderName.Append=true true表示日志信息增加到指定文件中,false则将日志信息覆盖指定的文件内容,默认值是true
log4j.appender.appenderName.Threshold=DEBUG 只输出DEBUG级别以上的日志 设置日志输出级别
log4j.appender.appenderName.layout=【Layout日志布局格式】
- org.apache.log4j.HTMLLayout(以HTML表格形式布局),
- org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
- org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
- org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
log4j.appender.appenderName.layout.ConversionPattern=日志输出格式
- %m 输出代码中指定的消息
- %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
- %r 输出自应用启动到输出该log信息耗费的毫秒数
- %c 输出所属的类目,通常就是所在类的全名
- %t 输出产生该日志事件的线程名
- %n 输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”
- %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日 22 : 10 : 28 , 921
- %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 )
log4j.properties
### 设置 ###
log4j.rootLogger=debug,stdout,DDD,EEE
### 输出信息到控制台 ###
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=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
### 输出DEBUG 级别以上的日志到=/Users/tinybye/Documents/log4j/debug.log ###
log4j.appender.DDD=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DDD.File=/Users/tinybye/Documents/log4j/debug.log
log4j.appender.DDD.Append=true
log4j.appender.DDD.Threshold=DEBUG
log4j.appender.DDD.layout=org.apache.log4j.PatternLayout
log4j.appender.DDD.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### 输出ERROR 级别以上的日志到=/Users/tinybye/Documents/log4j/error.log ###
log4j.appender.EEE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.EEE.File=/Users/tinybye/Documents/log4j/error.log
log4j.appender.EEE.Append=true
log4j.appender.EEE.Threshold=ERROR
log4j.appender.EEE.layout=org.apache.log4j.PatternLayout
log4j.appender.EEE.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
二、使用log4j输出日志
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;/*** Created by tinybye on 2017/3/14.*/
public class Log4jText {private static Logger logger = Logger.getLogger(Log4jText.class);public static void main(String[] args) {//获取log4j配置文件PropertyConfigurator.configure(ClassLoader.getSystemResource("resource/log4j.properties"));logger.error("ERROR!!!!!");//输出error级别的日志logger.debug("DEBUG~");//输出debug级别的日志}
}
==========分割线==========
其实这里的代码有些问题,logger应该是定义成为final的。原因有两个:
1.出于资源利用的考虑,Logger的构造方法参数是Class,决定了Logger是根据类的结构来进行区分日志,所以一个类只要一个Logger就可以了,故static
2.final表示一种编程习惯,表示该类的Logger只是记录该类的信息,否则日志会无法提供可以令人信服的记录。
==========分割线==========
三、整合Spring mvc
<!--log4j配置文件地址--><context-param><param-name>log4jConfigLocation</param-name><param-value>WEB-INF/classes/resource/config/log4j.properties</param-value></context-param><!--log4j监听--><listener><listener-class>org.springframework.web.util.Log4jConfigListener</listener-class></listener>
Log4j配置使用的简单教程相关推荐
- linux 配置trac界面显示为中文,安装back|track 5 r3并配置中文界面简单教程
最近更新:29th 4月, 2013 最近对bt比较感兴趣,看到不少朋友说,bt早都出10了11了我说我怎么就不知道. 官方网站打开一看,果然还是BT5,不过已经r3了. 听说现在BT5的支持已经很好 ...
- log4j 配置文件示例_Log4j2示例教程–配置,级别,附加程序
log4j 配置文件示例 Welcome to the Apache Log4j2 Example Tutorial. If you ask an expert developer about the ...
- ASP.NET Core macOS 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程
ASP.NET Core macOS 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 原文:ASP.NET Core macOS 环境配置 - ASP.NET Core 基础 ...
- ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Windows 环境配置 ASP.NET Core ...
- ASP.NET Core 项目配置 ( Startup ) - ASP.NET Core 基础教程 - 简单教程,简单编程
ASP.NET Core 项目配置 ( Startup ) - ASP.NET Core 基础教程 - 简单教程,简单编程 原文:ASP.NET Core 项目配置 ( Startup ) - ASP ...
- springMVC——SSM整合(IDEA 搭建简单 ssm 框架最详细最简单教程)
为开发一个测试程序,特搭建一个简单的ssm框架,因为网上看到很多都是比较老旧的教程,很多包都不能用了,eclipes搭建并且其中还附带了很多的其他东西,所以特此记录一下mac中idea搭建过程. 以下 ...
- idea 从svn导入多个项目_IDEA导入项目简单教程
该教程用于IDEA初学者导入eclipse项目,或者导入其他已经写好的Java源程序的简单教程. 我们用IDEA打开一个已经写好的项目源文件时,如果没有配置好,就会出现:JDK配置失误报错.程序无法启 ...
- 安装python程序后要进行什么设置-安装好Pycharm后如何配置Python解释器简易教程...
这两天有许多Python小白加入学习群,并且问了许多关于Pycharm基本使用的问题,今天小编就以配置Python解释器的问题给大家简单絮叨一下. 1.一般来说,当我们启动Pycharm,如果Pych ...
- Git和Github简单教程
网络上关于Git和GitHub的教程不少,但是这些教程有的命令太少不够用,有的命令太多,使得初期学习的时候需要额外花不少时间在一些当前用不到的命令上. 这篇文章主要的目标是用较少的时间学习Git和Gi ...
- ASP.NET Core 动作结果 - ASP.NET Core 基础教程 - 简单教程,简单编程
ASP.NET Core 动作结果 - ASP.NET Core 基础教程 - 简单教程,简单编程 原文:ASP.NET Core 动作结果 - ASP.NET Core 基础教程 - 简单教程,简单 ...
最新文章
- Redis为什么这么快?一文深入了解Redis内存模型!
- 从 Blast2GO 本地化聊一聊 Linux 下 MySQL 的源码安装
- python 画出决策边界_决策边界可视化,让你的分类合理有序
- 关于PKI架构(使用证书)保护Web访问的安全实现SSL的基本理论
- 【记录】ubuntu18.04 终端下No module named numpy No module name cv2
- Win7 64位下PowerDesigner连接64位Oracle11g数据库
- AcWing 831. KMP字符串(模板)
- MySql增加字段、删除字段、修改字段名称、修改字段类型
- 并查集+基础知识点详解
- 在存储器的层次结构里,谁最快,谁最贵,谁最大?
- SRL——无人机区域定位系统
- Android、iOS、和Web如何做灰度发布?
- SunOS与Solaris系统的对应关系
- Python学习笔记之爬虫
- 《Java就业培训教程》_张孝祥_书内源码_06
- 升级版DC/DC转换器有什么优点?
- 去掉小数点后多余的0
- Android中的保活机制
- Python切图九宫格
- 测试基础知识考试题目(答案)