log4j 使用记录
又很懒了。。 好久没来了,必须自我批评一下。。。
===========================我是分割线=============================
鼎鼎大名的log4j,要说用过吧其实也不算的,以前公司里分工太细,配置log这件事情,压根轮不着我,我只需要知道就行,大概会改个info,debug级别,基本上也就不需要干别的了,所以对于它的使用也是模模糊糊,唉,其实是压根不知道。惭愧。。。好弱。。。
这次自己些小工具,可以配置log 当然用system.out.println 也是可以的。。。。 只不过这样真的太low了。。。。
所以还是要想着用一下滴,然后就在网上搜了搜大概怎么用,都干哈的,怎么回事稍微了解了一下。
这是我从好几个博客上摘抄过来了, 最后会附上原文连接的。
1. 在maven中引用包
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
</dependency> 2. 代码中使用
大概是这样屎儿的:
Log logger = LogFactory.getLog(ClassName.class.getName());
logger.info("lalalala"). 3. 配置logging.properties
log4j.rootLogger=INFO,all #这个配置了吧,默认所有的log都会遵循这个(没有特殊定制的)
log4j.appender.console=org.apache.log4j.ConsoleAppender #默认的appender, 这个是打印到console上
log4j.appender.console.layout=org.apache.log4j.PatternLayout #这个吧,布局设置,具体啥可以去官网看看吧 https://logging.apache.org/log4j/1.2/manual.html
log4j.appender.console.layout.ConversionPattern=%d %-5p %X{processor} %X{module} %X{file} [%t] %c - %m%n # 这个是输出的log每一行的格式,具体意义文后看
# 单独配置一个类的log输出格式
log4j.logger.util.UtilClass=DEBUG,ee #如果想要单独给某个类或者某个package中的log特殊指定一下,可以用这个log4j.logger.<包名,或者类名>指定logger, 具体在显示的时候会优先选择粒度最小的相应logger,也就是说如果同时指定了包,以及这个包里面的类的logger,那个这个类就会按照这个类的logger来显示log, 包中其它的类则按照包的logger显示。“ee”是指向相应的名称,可以随便起名,不过不要忘记定义对应的appender,这里也可以有多个appender,到时候log就会在多个地方显示啦。
log4j.appender.ee=org.apache.log4j.RollingFileAppender #指定具体怎么处理,这个是指如果文件大小超出限制,就新建个文件存储。 还有写别的,后面会貼。 注意一下“ee” 这个东东,是我在logger那里指定的appender的名称哦。
log4j.appender.ee.File=C:\\temp\\logs\\utils.log #要将log存到哪个文件中
log4j.appender.ee.MaxFileSize=100MB #文件大小的配置
log4j.appender.ee.MaxBackupIndex=10 #最多几个文件,多了就删掉啦。
log4j.appender.ee.layout=org.apache.log4j.PatternLayout
log4j.appender.ee.layout.ConversionPattern=%d %-5p %X{processor} %X{module} %X{file} [%t] %c - %m%n 4. 最后我要怎么使这个配置文件啊。。。。 此段纯复制粘贴的
在默认情况下 log4j 会从WEB-INF/classes/ 下读取log4j.properties
我们可以通过多种方式修改配置文件的位置
a.在web.xml中指定:
web.xml
Xml代码 收藏代码
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/classes/log4j.properties</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
b.注册在System.properties里
Java代码 收藏代码
-Dlog4j.configuration=file:/home/bea/log4j1.propertie
c.注册在环境变量里
Java代码 收藏代码
LOG4J_CONFIG_FILE=/home/bea/log4j.properties
最后,复制粘贴一些前面挖下的坑:
Log4J配置文件的基本格式如下:
#配置根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 其中 [level] 是日志输出级别,共有5级:
FATAL 0
ERROR 3
WARN 4
INFO 6
DEBUG 7 
Appender 为日志输出目的地,Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)Layout:日志输出格式,Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)打印参数: 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 ) 
查看更多: https://logging.apache.org/log4j/2.x/manual/layouts.html
剩下的看原文吧:
http://blog.csdn.net/azheng270/article/details/2173430/
http://blog.csdn.net/memray/article/details/18193449
http://www.thinksaas.cn/group/topic/101727/
http://www.blogjava.net/wilesun/archive/2007/10/30/156999.html
log4j 使用记录的更多相关文章
- ELK环境配置+log4j日志记录
ELK环境配置+log4j日志记录 1. 背景介绍 在大数据时代,日志记录和管理变得尤为重要. 以往的文件记录日志的形式,既查询起来又不方便,又造成日志在服务器上分散存储,管理起来相当麻烦, 想根据一 ...
- Hibernate 使用log4j日志记录
日志记录使程序员能够将日志详细信息永久写入文件.这是我们以后在开发当中非常重要的一步. Hibernate使用log4j日志记录,我们需要以下几个步骤: 1.导入jar包: (1)这是hibernat ...
- java Web应用配置log4j日志记录
公司启动全国支票影像系统,有这样一个功能是和消息中间件打交道,需要记录每一个报文出错情况,因为方便后期开发人员的调试,我选用了log4j作为日志记录,好了废话不多说了! 第一步:首先建立一个WEB工程 ...
- log4j日志记录级别是如何工作?
级别p的级别使用q,在记录日志请求时,如果p>=q启用.这条规则是log4j的核心.它假设级别是有序的.对于标准级别它们关系如下:ALL < DEBUG < INFO < WA ...
- ELK菜鸟手记 (一) 环境配置+log4j日志记录
1. 背景介绍 在大数据时代,日志记录和管理变得尤为重要. 以往的文件记录日志的形式,既查询起来又不方便,又造成日志在服务器上分散存储,管理起来相当麻烦, 想根据一个关键字查询日志中某个关键信息相当困 ...
- SpringBoot-整合log4j日志记录
新建log4j配置文件 文件名称log4j.properties #log4j.rootLogger=CONSOLE,info,error,DEBUG log4j.rootLogger=info,er ...
- 在android中配置 slf4j + log4j 日志记录框架
需求: 在项目开发中,需要记录 操作日志 .起初自己写了个简单的日志记录文本写入到文本的方法,后来随着项目的膨胀,需要考虑更多的操作,开始考虑性能问题. 实现: 考虑使用 slf4j + log4j ...
- 封装log4j支持记录到testng
一.初始方案 自动化中需要把日志通过testng的Reporter.log来记录日志在报告中展示.开始是新增了一个日志类: ReporterLog.class import org.slf4j.Log ...
- log4j+AOP 记录错误日志信息到文件中
AOP 采用异常通知切入,把指定包的异常记录到日志文件. 先看log4j.properties ,控制台输出的是普通信息, 文件输出的是异常信息. log4j.rootLogger=DEBUG, Co ...
- Hibernate使用Log4j日志记录(使用properties文件)
我们知道,Log4j和Logback框架可用于支持日志记录hibernate,使用log4j有两种执行日志记录的方法: 通过log4j.xml文件(或) 通过log4j.properties文件 在这 ...
随机推荐
- 7-31 The World's Richest(25 分)
Forbes magazine publishes every year its list of billionaires based on the annual ranking of the wor ...
- 数据库Job定时任务
数据库Job再熟悉不过了,因为经常要数据库定时的自动执行一些脚本,或做数据库备份,或做数据的提炼,或做数据库的性能优化,包括重建索引等等的工作.但是,Oracle定时器Job时间的处理上,千变万化,今 ...
- C#在64位操作系统上连接Oracle的问题和解决方案
C#使用System.Data.OracleClient连接Oracle数据库.之前在WinXP上正常运行的程序移植到Windows 2008 x64上之后就连不上数据库了.错误信息如下: 尝试加载O ...
- 【linux】linux文件属性权限的介绍
众所周知,root的信息存在/etc/passwd下,个人密码存在/etc/shadow下,所有组名存在/etc/group下,因此这三个文件十分重要. 在linux系统下,我们可以通过"l ...
- 模仿VIMD的模式的简化代码示例
按numpad0来切换模式,按t显示不同的结果: Numpad0:: tfmode:=!tfmode aaa:=(tfmode=?"AAAA":"BBBB") ...
- [Java.web]简单计算器
项目的 WebRoot 目录下的 calculator.jsp <%@ page language="java" import="java.util.*" ...
- CentOS下查看最后登录的用户信息以及LOG记录
CentOS下查看最后登录的用户信息tail /var/log/messagestail /var/log/secure 我们知道,在redhat下可以用lastlog查看各用户最后登录的信息,用la ...
- 【Codeforces】Codeforces Round #491 (Div. 2) (Contest 991)
题目 传送门:QWQ A:A - If at first you don't succeed... 分析: 按照题意模拟 代码: #include <bits/stdc++.h> usin ...
- python logging 重复写日志问题
用Python的logging模块记录日志时,遇到了重复记录日志的问题,第一条记录写一次,第二条记录写两次,第三条记录写三次...很头疼,这样记日志可不行.网上搜索到了原因与解决方案: 原因:没有移除 ...
- java 工具类 static
http://wenwen.sogou.com/z/q526955586.htm 工具类其实就是提供了一些公共的函数,方便其他类去调用,函数都写成static一方面是因为方便,另一方面是工具类的函数是 ...