java项目log4j_java项目测试log4j

一、基础入门

1.1 下载安装

下载相应的log4j-1.2.15.jar(也可以下载其他的版本)提供一个下载jar包的网站(http://search.maven.org/)

新建一个log4j.properties文件:

#配置根Logger

log4j.rootLogger=info, RF #info代表的是日志输出的级别

log4j.appender.RF=org.apache.log4j.RollingFileAppender #文件大小到达指#定尺寸的时候产生

#一个新的文件

log4j.appender.RF.File=example.log

log4j.appender.RF.MaxFileSize=100KB

log4j.appender.RF.MaxBackupIndex=1log4j.appender.RF.layout=org.apache.log4j.PatternLayout

log4j.appender.RF.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p [%c] - %m%n

#为某一个包下添加log日志

log4j.logger.com.lxy.io.file=debug, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.

log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p [%c] - %m%n

log4j.additivity.com.lxy.io.file=true # 如果为FALSE,上面指定的根root设置的输出将会被禁用

1.2 代码示例

项目结构如下:

a7c6e528d9ee029c51707d8a003daea2.png

如果log4j.properties放在项目的根目录下,加载的时候:

PropertyConfigurator.configure("lo4j.properties");

如果放在src目录下,则加载带上class输出路径的文件夹,例如:

PropertyConfigurator.configure("bin/lo4j.properties");

设置日志内容:

public classLogTest{static Logger log=Logger.getLogger(FileTest.class);public static voidmain(String[] args){

PropertyConfigurator.configure("lo4j.properties");

log.debug("===========debug信息===============");

log.info("===========info信息===============");

log.error("===========error信息===============");

}

}

二、Log4j详解

Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。日志信息的优先级从高到低有ERROR、WARN、 INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显 示内容。

2.1、定义配置文件

Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件(键=值)。下面我们介绍使用Java特性文件做为配置文件的方法:

2.1.1 配置根Logger

其语法为:

log4j.rootLogger = [ level ] , appenderName, appenderName, …

其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优 先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定 义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。 appenderName就是指B日志信息输出到哪个地方。您可以同时指定多个输出目的地。

2.1.2 配置日志信息输出目的地

输出目的地Appender,其语法为:

log4j.appender.appenderName = fully.qualified.name.of.appender.class

log4j.appender.appenderName.option1 = value1

log4j.appender.appenderName.option = valueN

其中,Log4j提供的appender有以下几种:

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

org.apache.log4j.FileAppender(文件)

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

org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)

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

2.1.3 配置日志信息的格式(布局)

其语法为:

log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class

log4j.appender.appenderName.layout.option1 = value1

log4j.appender.appenderName.layout.option = valueN

其中,Log4j提供的layout有以下几种:

org.apache.log4j.HTMLLayout(以HTML表格形式布局)

org.apache.log4j.PatternLayout(可以灵活地指定布局模式)

org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)

org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下:

%p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,

%d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如: %d{yyyy-MM-dd HH:mm:ss,SSS},输出类似:2002-10-18 22:10:28,921

%r: 输出自应用启动到输出该log信息耗费的毫秒数

%c: 输出日志信息所属的类目,通常就是所在类的全名

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

%l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。

%x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。

%%: 输出一个"%"字符

%F: 输出日志消息产生时所在的文件名称

%L: 输出代码中的行号

%m: 输出代码中指定的消息,产生的日志具体信息

%n: 输出一个回车换行符,Windows平台为"/r/n",Unix平台为"/n"输出日志信息换行

2.1.5 注意事项

ClassLoader.getSystemResource("")加载的文件是bin所在的路径下面

PropertyConfigurator是log4j中的一个类,用来初始化log4j的配置

ClassLoader类的getResource( " ")方法能够得到当前classpath的绝对路径,这是所有Java程序都拥有的能力,具有最大的适应性!

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

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

相关文章

webrtc 代码_英特尔开源WebRTC开发套件OWT

为了抢占实时视频的巨大市场,英特尔开源了WebRTC开发套件,并将其命名为Open WebRTC Toolkit (OWT)。由于实时视频编码、转码需要大量的计算资源,Open WebRTC Toolkit将为英特尔带来巨大的潜在商业回报。文 / Ant去年在旧金山举办的2018 Krank…

零基础自学java_零基础学Java——小白的Java之路(4)

方法方法是一段可以重复调用的代码块,这个代码块实现了某个功能,当我们的程序中需要这一个功能的时候,调用这个方法即可,不再需要重复书写这个功能的代码。方法的定义格式public static ( ,... ){方法体;[return 表达值…

异步fifo_跨时钟域同步(异步FIFO)

本文使用 Zhihu On VSCode 创作并发布跨时钟域同步(异步FIFO)之前学习了跨时钟域下的单bit信号同步的方法,这些单bit信号多是作为控制信号或者标志信号来使用,再实际的项目中,处理多bit数据也是十分常见的,…

think python 2ed_Think Python 2ed 笔记(二)

第六章 有返回值的函数1. 返回值:没有返回值的函数返回None2. 增量式开发:增量式开发的目标,是通过每次只增加和测试少量代码,来避免长时间的调试。该函数的最终版不会在运行时显示任何东西,仅仅返回一个值。 我们之前…

dumpbin发现没有入口函数_JavaScript基础之入口函数-2020版

JavaScript基础之入口函数-2020版1.入口函数window.onload function(){ 内部放js}这个函数的意思就是说,当我们页面加载完毕之后(就是说等页面的结构 样式 节点等加载完毕),采取执行函数体里面的js部分。也就是说可以使用此方法,就不用考…

java相等_Java 判断相等

1.除 float 和 double 外的原始数据类型 : 使用 long a (long) 1234567890;long b (long) 1234567890;if (a b) {System.out.println("基本数据类型相等");}2.包装类使用 equals 或者转换为基本数据类型再用 Long a (long) 1234567890;Long b (long) 1234567890;i…

农委系统先进集体推荐报告_来自司法行政的他们,荣获上海档案系统表彰!

为表彰先进、弘扬正气,激发全市各级档案部门和广大档案工作者的积极性和创造性,进一步推进上海档案事业创新发展,经各地区、各部门、各单位民主推荐,市人力资源社会保障局和市档案局审核同意,决定授予50家集体“上海市…

java如何获得wlan mac_Android M 如何获取 Wifi MAC地址

今天在撸代码时发现,之前能获取mac地址的方法在nexus 6上返回了“02:00:00:00:00:00”,进入设置查看mac地址,结果不相同,肯定有问题,于是就开始上网查资料一探究竟。原先获取mac地址的代码段:6.0之前获取ma…

python docx官网_【记录】尝试用DocxyGen为Python代码生成文档

【背景】之前折腾技术的时候,或多或少,知道一个东西:DocxyGen是用于从代码生成文档的。最近,又从:->该地址无效,但是自己手动输入地址,而找到:看到页面右下角,就显示了…

我的世界java多大内存_我的世界电脑版内存多大

下载方法如下:1,百度搜索 我的世界电脑版,即可找到下载。2,直接点击普通下载,即可下载。3,我的世界电脑版硬件要求如下:最低配置:CPU:1.5G GHz多和处理器/2.0GHz单核处理…

天正双击墙体不能编辑_今日设计分享:CAD常用快捷键、Ps快捷键大全、天正快捷键总结!...

▶今天记忆一个技巧,成就明天一个大师!▶同行小可爱们,加油吧!CAD最常用快捷键L直线;PL多段线;U回车Ctrlz后退;D修改,调整;REC矩形;C圆;TR修剪&am…

java获取spring注解的实体_Spring 注解实体类中非数据库字段属性

今天要给一个实体类添加一个List集合属性!private List childList new ArrayList();写完后get/set方法一写,启动就报错:org.hibernate.MappingException: Could not determine type for: java.util.List, at table: T_REVERTS, for columns:…

odoo tree视图过滤数据_数据存储结构 LSM Tree PK B TREE (从底层了解数据库设计)...

随着使用数据库的深度和理解能力的提升,有一个问题硬件的提升,与数据量的变化是否对数据库底层的架构有冲击。 我们公认的BTREE BTREE 是否还能面对现在的硬件的变化。 BTREE 到底是为那种硬件逻辑来服务的,这点是需要搞清楚的在MYSQL 中使用的BTREE的改…

java s结尾的工具类_FilenameUtils工具类

commons-iocommons-io2.4import java.util.ArrayList;import java.util.List;import org.apache.commons.io.FilenameUtils;import org.apache.commons.io.IOCase;/*** org.apache.commons.io.FilenameUtils工具类笔记* author*/public class FilenameUtilsTest {public static…

python类继承返回值_python继承threading.Thread实现有返回值的子类实例

继承与threading.thread实现有返回值的子类mythread,废话不多说,大家直接看代码import threadingclass mythread(threading.thread):def __init__(self,func,args()):super(mythread,self).__init__()self.func funcself.args argsdef run(self):self.…

python继承super函数_Python中的super函数如何实现继承?

本篇文章给大家带来的内容是关于Python 中的super函数如何实现继承?有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。Py 2.x 和 Py 3.x 中有一个很大的区别就是类,无论是类的定义还是类的继承。Py 3.x 中类的继承可以直接使用…

java逸出_Java并发编程 - 对象的共享

编写正确的并发程序,关键问题在于:在访问共享的可变状态时需要进行正确的管理。同步代码块和同步方法可以确保以原子的方式执行操作,同步还有另一个重要的方面:内存可见性。可见性为了确保多个线程之间对内存写入操作的可见性&…

mgr未同步 mysql_mysql8.0 搭建mgr踩坑记录

启动总是报错:2020-08-21T04:52:36.332502Z 10 [System] [MY-010597] [Repl] CHANGE MASTER TO FOR CHANNEL group_replication_applier executed. Previous state master_host, master_port 3306, master_log_file, master_log_pos 4, master_bind. New state mast…

java rpm包安装_rpm包安装java jar开机自启

1.下载jdk2.安装jdk;rpm -ivh jdk-8u201-linux-x64.rpm3.检查安装:java -version输出Java版本,则不用第4步和第5步4.配置jdk路径打开/etc/profile增加以下内容:export JAVA_HOME/usr/java/jdk1.8.0_201export JAVA_BIN/usr/java/j…

idea 保存设置 新建项目_配置、创建IntelliJ IDEA Spring MVC 项目

前言步骤,下载安装 IntelliJ IDEA及Tomcat 客户端、服务端下载安装,这些都配置完之后准备创建项目点击下一步修改完项目名称其他的名称也跟项目名称一样,我就改了保存位置其他都跟项目名称一样的名字,点击Finish后会下载本框架需要…