Log4j文件配置教程大全

Log4j文件配置教程大全~


Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。


1, 整体框架介绍:

 #配置根Logger
log4j.rootLogger  =   [ level ]   ,  appenderName1 ,  appenderName2 ,  …#配置日志信息输出目的地Appender
log4j.appender.appenderName  =  fully.qualified.name.of.appender.class log4j.appender.appenderName.option1  =  value1 … log4j.appender.appenderName.optionN  =  valueN #配置日志信息的格式(布局)log4j.appender.appenderName.layout  =  fully.qualified.name.of.layout.class log4j.appender.appenderName.layout.option1  =  value1 … log4j.appender.appenderName.layout.optionN  =  valueN

2. 日志输出级别:
ERROR、WARN、INFO、DEBUG
ERROR 为严重错误 主要是程序的错误
WARN 为一般警告,比如session丢失
INFO 为一般要显示的信息,比如登录登出
DEBUG 为程序的调试信息
配置日志信息输出目的地

其中 [level] 是日志输出级别,共有5级:
FATAL      0  
ERROR      3  
WARN       4  
INFO       6  
DEBUG      7 

3. 配置日志信息输出目的地(控制台,日志文件(每天生成一个日志文件,文件达到一定大小重新生成新文件))

Appender 为日志输出目的地,Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
4. 配置日志信息的格式:(HTML表格形式布局,包含日志信息的级别和信息字符串,包含日志产生的时间,类别)
Layout:日志输出格式,Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
5. 日志信息格式中几个符号所代表的含义:
打印参数: Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下:%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 ) 

6. 输出目的地常见的选项

 控制台常见的选项
Threshold=DEBUG:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
Target=System.err:默认情况下是:System.out,指定输出控制台FileAppender 选项
Threshold=DEBUF:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
File=mylog.txt:指定消息输出到mylog.txt文件。
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。(增加与覆盖的区别)RollingFileAppender 选项
Threshold=DEBUG:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
File=mylog.txt:指定消息输出到mylog.txt文件。
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
MaxFileSize=100KB: 后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到mylog.lo

7. easy sample~
### 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 = logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG ## 输出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### 保存异常信息到单独文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/error.log ## 异常日志文件名
log4j.appender.D.Append = true
log4j.appender.D.Threshold = ERROR ## 只输出ERROR级别以上的日志!!!
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
代码中使用:
public   class  TestLog4j  {public   static   void  main(String[] args)  {PropertyConfigurator.configure( " D:/Code/conf/log4j.properties " );Logger logger  =  Logger.getLogger(TestLog4j. class );logger.debug( " debug " );logger.error( " error " );} 
}

8  another sample 

log4j.rootLogger=DEBUG,A1,R
#log4j.rootLogger=INFO,A1,R
# ConsoleAppender 输出
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n# File 输出 一天一个文件,输出路径可以定制,一般在根路径下
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=blog_log.txt
log4j.appender.R.MaxFileSize=500KB
log4j.appender.R.MaxBackupIndex=10
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

9. sample3

下面给出的Log4J配置文件实现了输出到控制台,文件,回滚文件,发送日志邮件,输出到数据库日志表,自定义标签等全套功能。
log4j.rootLogger=DEBUG,CONSOLE,A1,im 
#DEBUG,CONSOLE,FILE,ROLLING_FILE,MAIL,DATABASE
log4j.addivity.org.apache=true
################### 
# Console Appender
输出到控制台 
################### log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.Threshold=DEBUG log4j.appender.CONSOLE.Target=System.out log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n #log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n##################### # File Appender
输出到文件
##################### log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=file.log log4j.appender.FILE.Append=false log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n # Use this layout for LogFactor 5 analysis######################## # Rolling File
回滚文件
######################## log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender log4j.appender.ROLLING_FILE.Threshold=ERROR log4j.appender.ROLLING_FILE.File=rolling.log log4j.appender.ROLLING_FILE.Append=true log4j.appender.ROLLING_FILE.MaxFileSize=10KB log4j.appender.ROLLING_FILE.MaxBackupIndex=1 log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n#################### # Socket Appender #################### log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender log4j.appender.SOCKET.RemoteHost=localhost log4j.appender.SOCKET.Port=5001 log4j.appender.SOCKET.LocationInfo=true # Set up for Log Facter 5 log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n######################## # Log Factor 5 Appender ######################## log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000######################## # SMTP Appender
发送日志邮件
####################### log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender log4j.appender.MAIL.Threshold=FATAL log4j.appender.MAIL.BufferSize=10 log4j.appender.MAIL.From=chenyl@yeqiangwei.comlog4j.appender.MAIL.SMTPHost=mail.hollycrm.com log4j.appender.MAIL.Subject=Log4J Message log4j.appender.MAIL.To=chenyl@yeqiangwei.comlog4j.appender.MAIL.layout=org.apache.log4j.PatternLayout log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n######################## # JDBC Appender
输出到数据库日志表
####################### log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver log4j.appender.DATABASE.user=root log4j.appender.DATABASE.password= log4j.appender.DATABASE.sql=INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n') log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%nlog4j.appender.A1=org.apache.log4j.DailyRollingFileAppender log4j.appender.A1.File=SampleMessages.log4j log4j.appender.A1.DatePattern=yyyyMMdd-HH'.log4j' log4j.appender.A1.layout=org.apache.log4j.xml.XMLLayout################### #自定义Appender (自定义标签~)################### log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppenderlog4j.appender.im.host = mail.cybercorlin.net log4j.appender.im.username = username log4j.appender.im.password = password log4j.appender.im.recipient = corlin@yeqiangwei.comlog4j.appender.im.layout=org.apache.log4j.PatternLayout log4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
参考博文:https://blog.csdn.net/azheng270/article/details/2173430/





本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/559080.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微型计算机和接口技术考题,微型计算机接口技术以及应用考题

一、单项选择题1.通常在外设接口中,往往有( )端口才能满足和协调外设工作要求。A.数据 B.数据、控制 C.数据、控制、状态 D.控制、缓冲2.独立I/O端口编址方式中,端口地址…

Java本地文件操作

概述:Java本地文件操作,涉及到文件/文件夹的创建,文件/文件夹属性的读取与设置,文件/文件夹的重命名,目录结构的遍历,以及文件内容的读取与写入。 File属于java.io.File。 ---在Eclipse的大纲视图界面&…

GitBlit使用安装教程~

GitBlit使用安装教程~GitBlit是什么?Gitblit 是一个纯 Java 库用来管理、查看和处理 Git 资料库.相当于 Git 的 Java 管理工具.git的管家,通俗点来说就是一个相当于SVN的工具,用于多个人共同开发同一个项目,共用资源的目的。 下载与安装: 1. …

怎么用计算机名称共享打印机设置,如何共享打印机设置教程

打印机怎么共享,算是老问题了,但很多时候分享都是老系统的,这里分享WIN7系统和win10系统两种系统的打印机如何共享的设置教程。一、WIN7设共享准备工作:添加打印机之前我们要知道主机的一些信息,如计算机名、工作组、共…

Java项目转变为Java Web项目

1、找到项目工作空间目录&#xff0c;打开.project文件&#xff0c;并修改文件&#xff0c; 修改如下&#xff1a; 找到&#xff1a;<natures> </natures>代码段&#xff0c;在代码段中加入如下内容并保存&#xff1a; <nature>org.eclipse.wst.common.proje…

计算机网络学习总结

计算机网络学习总结~1. OSI&#xff0c;TCP/IP,五层协议的体系结构&#xff0c;以及各层协议&#xff1a; OSI 分层&#xff1a;7层&#xff0c;物理层&#xff0c;数据链路层&#xff0c;网络层&#xff0c;传输层&#xff0c;会话层&#xff0c;表示层&#xff0c;应用层 TC…

计算机网络实验报告校园网,校园网规划与设计实验报告.docx

校园网规划与设计实验报告校园网的规划与设计实验报告篇一&#xff1a;校园网设计与规划报告(计算机网络大实验)  《计算机网络》实践报告  校园网设计与规划   专 业&#xff1a; 软件工程   班 级&#xff1a; 软件0901  姓 名&#xff1a; 李双双  学 号:  指…

Linux(Ubuntu)下设置开机自启shell脚本执行Java程序jar包

一、建立脚本文件&#xff1a; 二、设置权限 三、将脚本文件放到启动目录下 四、更新优先级 cd /etc/init.d sudo update-rc.d startm.sh defaults 90 至此&#xff0c;开机启动已经完成&#xff0c;我们可以通过reboot重启linux&#xff0c;来查看jar包是否已经启动成功。而…

鼠标键盘与计算机无法连接,只有三个步骤可以轻松解决无法识别计算机,键盘和鼠标的问题!...

对于大多数人来说&#xff0c;无论是笔记本电脑还是台式机&#xff0c;浏览网络&#xff0c;聊天&#xff0c;玩游戏和办公室工作都像进食和喝水一样容易。但是了解计算机并不意味着了解计算机。有时&#xff0c;一个非常常见的小问题“键盘和鼠标无法响应”常常使许多朋友感到…

git学习入门~~~

创建版本库&#xff08;又名仓库&#xff0c;repository&#xff09;&#xff0c;可以理解为一个仓库&#xff0c;这个目录里面的所有文件都可以被Git管理起来&#xff0c;每个文件的修改、删除&#xff0c;Git都能跟踪&#xff0c;以便任何时刻都可以追踪历史&#xff0c;或者…

Linux(Ubuntu)设置系统时区

设置东八区的时间&#xff1a; #cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 查看&#xff1a; #date 如果现实CST即为正确。 另外&#xff0c;Java打成jar包后再linux下运行&#xff0c;获取的时间有可能不正确&#xff0c;我们需要修改一个文件&#xff0c;Ubuntu系…

兰州交通大学计算机科学与技术排名,兰州交通大学怎么样 全国排名是多少

兰州交通大学&#xff0c;原名兰州铁道学院&#xff0c;是我国第三所铁路院校。兰州交通大学学科特色鲜明、门类齐全&#xff0c;是中央部委投资省部共建重点大学&#xff0c;下面小编为大家详细介绍&#xff0c;供大家参考。兰州交通大学排名2020年兰州交通大学全国排名第166名…

数据库的哪些事儿~~

一 . 事务的四个特性&#xff1f; 四大特性是&#xff1a;ACID 原子性&#xff08;Atomicity&#xff09;、一致性&#xff08;Consistency&#xff09;、隔离性&#xff08;Isolation&#xff09;、持久性&#xff08;Durability&#xff09;介绍四个特性概念&#xff1b; 原…

众友科技计算机组成原理,组成原理:采用微程序控制器的模型机CPU设计(10页)-原创力文档...

课程设计报告课程名称&#xff1a; 计算机组成原理设计题目&#xff1a; 采用微程序控制器的模型机 CPU设计院 系&#xff1a;班 级&#xff1a;设 计 者&#xff1a;学 号&#xff1a;指导教师&#xff1a;目 录课程设计(大作业)报告 1昆明学院课程设计(大作业)任务书 错误&am…

JVM 运行时数据区域总结

引言 本博客总结自《深入理解 Java 虚拟机》&#xff0c;第二章。 一、概述 Java 虚拟机在执行 Java 程序的时候会把它所管理的内存划分为若干个不同的数据区域。 记忆口诀&#xff1a;两栈一计数&#xff0c;一堆一方法。 解释&#xff1a;第一句两栈分别是VM栈和本地方法栈…

一篇博客读懂设计模式之---单例模式

一篇博客读懂设计模式之---单例模式 一。 单例模式 单例对象&#xff08;Singleton&#xff09;是一种常用的设计模式。在Java应用中&#xff0c;单例对象能保证在一个JVM中&#xff0c;该对象只有一个实例存在。这样的模式有几个好处&#xff1a; 1、某些类创建比较频繁&…

计算机会计知识竞赛,全国企业会计信息化知识竞赛试题及答案

全国企业会计信息化知识竞赛试题及答案第 1 题(单选)下列各项中&#xff0c;符合会计软件不可逆的记账功能要求的是( A )A.记账标记不得通过任何操作予以取消B.不可以用红字凭证更正记账错误C.可以删除已经记账的记账凭证D.可以进行反记账第 2 题(单选)下列关于信息系统自动生成…

使用缓冲字节流:BufferedInputStream与BufferedOutputStream读写数据

功能逻辑&#xff1a;将一个视频文件通过缓冲字节输入流进行读取&#xff0c;然后再通过缓冲字节输出流将其重新拷贝输出。public static void main(String[] args) {try {FileInputStream fis new FileInputStream("Rick_and_Morty.mkv");//第二个参数指定了缓冲区…

多媒体计算机技术的主要特点,多媒体技术主要特点?

满意答案01and032013.11.24采纳率&#xff1a;41% 等级&#xff1a;11已帮助&#xff1a;5479人多媒体技术有以下几个主要特点&#xff1a;(1)集成性 能够对信息进行多通道统一获取、存储、组织与合成。(2)控制性 多媒体技术是以计算机为中心&#xff0c;综合处理和控制多媒…

java io流的学习总结~~

java io流的学习总结~~流的概念和作用流是一组有顺序的&#xff0c;有起点和终点的字节集合&#xff0c;是对数据传输的总称或抽象。即数据在两设备间的传输称为流&#xff0c;流的本质是数据传输&#xff0c;根据数据传输特性将流抽象为各种类&#xff0c;方便更直观的进行数据…