又很懒了。。 好久没来了,必须自我批评一下。。。

===========================我是分割线=============================

鼎鼎大名的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 使用记录的更多相关文章

  1. ELK环境配置+log4j日志记录

    ELK环境配置+log4j日志记录 1. 背景介绍 在大数据时代,日志记录和管理变得尤为重要. 以往的文件记录日志的形式,既查询起来又不方便,又造成日志在服务器上分散存储,管理起来相当麻烦, 想根据一 ...

  2. Hibernate 使用log4j日志记录

    日志记录使程序员能够将日志详细信息永久写入文件.这是我们以后在开发当中非常重要的一步. Hibernate使用log4j日志记录,我们需要以下几个步骤: 1.导入jar包: (1)这是hibernat ...

  3. java Web应用配置log4j日志记录

    公司启动全国支票影像系统,有这样一个功能是和消息中间件打交道,需要记录每一个报文出错情况,因为方便后期开发人员的调试,我选用了log4j作为日志记录,好了废话不多说了! 第一步:首先建立一个WEB工程 ...

  4. log4j日志记录级别是如何工作?

    级别p的级别使用q,在记录日志请求时,如果p>=q启用.这条规则是log4j的核心.它假设级别是有序的.对于标准级别它们关系如下:ALL < DEBUG < INFO < WA ...

  5. ELK菜鸟手记 (一) 环境配置+log4j日志记录

    1. 背景介绍 在大数据时代,日志记录和管理变得尤为重要. 以往的文件记录日志的形式,既查询起来又不方便,又造成日志在服务器上分散存储,管理起来相当麻烦, 想根据一个关键字查询日志中某个关键信息相当困 ...

  6. SpringBoot-整合log4j日志记录

    新建log4j配置文件 文件名称log4j.properties #log4j.rootLogger=CONSOLE,info,error,DEBUG log4j.rootLogger=info,er ...

  7. 在android中配置 slf4j + log4j 日志记录框架

    需求: 在项目开发中,需要记录 操作日志 .起初自己写了个简单的日志记录文本写入到文本的方法,后来随着项目的膨胀,需要考虑更多的操作,开始考虑性能问题. 实现: 考虑使用 slf4j + log4j ...

  8. 封装log4j支持记录到testng

    一.初始方案 自动化中需要把日志通过testng的Reporter.log来记录日志在报告中展示.开始是新增了一个日志类: ReporterLog.class import org.slf4j.Log ...

  9. log4j+AOP 记录错误日志信息到文件中

    AOP 采用异常通知切入,把指定包的异常记录到日志文件. 先看log4j.properties ,控制台输出的是普通信息, 文件输出的是异常信息. log4j.rootLogger=DEBUG, Co ...

  10. Hibernate使用Log4j日志记录(使用properties文件)

    我们知道,Log4j和Logback框架可用于支持日志记录hibernate,使用log4j有两种执行日志记录的方法: 通过log4j.xml文件(或) 通过log4j.properties文件 在这 ...

随机推荐

  1. java 8 新特性之Stream的排序/分类

    Stream简介 Stream是Java8提供的一个新的API,它位于java.util.stream包下.Stream API提供了一种新的方式来对Java集合进行操作,这种操作方式极大的提高了Ja ...

  2. web程序1

  3. maven学习--基础篇

    2016-01-5 16:13:43 发现一些错误,文章修改中…… (部分图片截取自其他地方,不是很清楚) 一. maven的项目创建和基本命令 maven是一个项目管理工具,包含了一个项目对象模型P ...

  4. 启动zookeeper时,jps显示有进程,但是status查看状态时就Error contacting service. It is probably not running

    转自:http://www.cnblogs.com/xiaohua92/p/5460515.html#undefined 安装zookeeper时候,可以查看进程启动,但是状态显示报错:Error c ...

  5. URL的getFile()和getPath()方法的区别(转)

    转自博客:http://blog.csdn.net/l375852247/article/details/7999063 import java.net.MalformedURLException; ...

  6. HDU 2201 熊猫阿波的故事

    熊猫阿波的故事 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  7. Bootstrap-CL:进度条

    ylbtech-Bootstrap-CL:进度条 1.返回顶部 1. Bootstrap 进度条 本章将讲解 Bootstrap 进度条.在本教程中,您将看到如何使用 Bootstrap 创建加载.重 ...

  8. 【Codeforces】Codeforces Round #492 (Div. 2) (Contest 996)

    题目 传送门:QWQ A:A - Hit the Lottery 分析: 大水题 模拟 代码: #include <bits/stdc++.h> using namespace std; ...

  9. 常用工具&网址

    工具 I tell you http://www.win7999.com/news/197912345.html VisualSVN Server(免费) http://www.visualsvn.c ...

  10. 让IE依据HTML头标签选择显示模式

    文件兼容性用于定义让IE如何编译你的网页.此文件解释文件兼容性,如何指定你网站的文件兼容性模式以及如何判断一个网页该使用的文件模式. 前言 为了帮助确保你的网页在所有未来的IE版本都有一致的外观,IE ...