首先建立项目

package a;

import org.apache.log4j.Logger;

public class Test {

    private static Logger logger=Logger.getLogger(Test.class);
public static void main(String[] args) {
logger.debug("debug");
logger.info("info");
logger.warn("warn");
logger.error("error");
logger.fatal("fatal");
} }

log4j.properties

log4j.rootLogger=DEBUG,Console,DEBUGFile ,ERRORFile

log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.SimpleLayout #DEBUGFile
log4j.appender.DEBUGFile = org.apache.log4j.FileAppender
log4j.appender.DEBUGFile.File = E://debug.log # ${catalina.base}/logs/debug.log
log4j.appender.DEBUGFile.layout = org.apache.log4j.PatternLayout
log4j.appender.DEBUGFile.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n
log4j.appender.DEBUGFile.Threshold = DEBUG
log4j.appender.DEBUGFile.Append = false #ERRORFile
log4j.appender.ERRORFile = org.apache.log4j.FileAppender
log4j.appender.ERRORFile.File = E://error.log
log4j.appender.ERRORFile.layout = org.apache.log4j.PatternLayout
log4j.appender.ERRORFile.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n
log4j.appender.ERRORFile.Threshold = ERROR

二话不说,先把项目跑起来

在到E盘中看看我们的日志文件

实践已经结束了,现在开始理论了。

日志级别从高到低:

OFF 关闭了日志信息 ,什么也不记录(一般不用)
FATAL 可能导致应用中止的严重事件错误
ERROR 严重错误 主要是程序的错误
WARN 一般警告,比如session丢失
INFO 一般要显示的信息,比如登录登出
DEBUG 为程序的调试信息
TRACE 为比DEBUG更细粒度的事件信息
ALL 全纪录(一般不用)

log4j.rootLogger是根配置属性

log4j.rootLogger=【level】,目的地名1,目的地名2,目的地名3....

level是日志等级,

目的地:是日志的记录信息输出到什么地方

目的地的值:

org.apache.log4j.ConsoleAppender   控制台

org.apache.log4j.FileAppender   文件

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

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

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

org.apache.log4j.JdbcAppender   将日志讯息保存到数据库中

log4j.appender.Console.layout   日志的输出形式,
值如下:
org.apache.log4j.HTMLLayout HTML表格形式布局
org.apache.log4j.PatternLayout 自定义日志格式
org.apache.log4j.SimpleLayout  包含日志信息的级别和信息字符串
org.apache.log4j.TTCCLayout   包含日志产生的时间、线程、类别等等信息 log4j.appender.DEBUGFile.File = E://debug.log 日志的输出地址
log4j.appender.Console.layout.ConversionPattern=%-5p [%c] - %m%n 自定义日志的输出格式
其中-5这一项表示的是输出的日志级别名称所占的字符数为5,不足5个字符的用空格补全,其实就是起到对齐的作用,方便查看日志内容
具体参数如下
%m
输出代码中指定的消息
%M
输出打印该条日志的方法名
%p
输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r
输出自应用启动到输出该log信息耗费的毫秒数
%c
输出所属的类目,通常就是所在类的全名
%t
输出产生该日志事件的线程名
%n
输出一个回车换行符,Windows平台为"rn”,Unix平台为"n”
%d
输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MM-dd HH:mm:ss,SSS},输出类似:2002-10-18 22:10:28,921;
%l
输出日志事件的发生位置,及在代码中的行数
log4j.appender.DEBUGFile.Threshold = DEBUG  日志消息的输出最低层次  这里的值只能比根层级高,否则无法输出
log4j.appender.DEBUGFile.Append = false   日志文件是否追加,默认就是true,表示追加

log4j.properties详解的更多相关文章

  1. log4j.properties 详解与配置步骤(转)

    找的文章,供参考使用 转自 log4j.properties 详解与配置步骤 一.log4j.properties 的使用详解 1.输出级别的种类 ERROR.WARN.INFO.DEBUGERROR ...

  2. log4j.properties 详解与配置步骤

    一.log4j.properties 的使用详解 1.输出级别的种类 ERROR.WARN.INFO.DEBUGERROR 为严重错误 主要是程序的错误WARN 为一般警告,比如session丢失IN ...

  3. 转--log4j.properties 详解与配置步骤

    一.log4j.properties 的使用详解 1.输出级别的种类 ERROR.WARN.INFO.DEBUGERROR 为严重错误 主要是程序的错误WARN 为一般警告,比如session丢失IN ...

  4. log4j.properties 详解与配置步骤总结

    先提供一个项目中使用log4j.properties配置 #log4j.rootLogger=WARN, stdout, file log4j.rootLogger=INFO,console,dail ...

  5. 【转】log4j.properties 详解与配置步骤 - edward0830ly的专栏 - 博客频道 - CSDN.NET

    一.log4j.properties 的使用详解 1.输出级别的种类 ERROR.WARN.INFO.DEBUGERROR 为严重错误 主要是程序的错误WARN 为一般警告,比如session丢失IN ...

  6. log4j.properties详解与例子

    在项目中的classes 中新建立一个log4j.properties文件即可: 在实际编程时,要使Log4j真正在系统中运行事先还要对配置文件进行定义.定义步骤就是对Logger.Appender及 ...

  7. 【配置】log4j.properties 详解与配置步骤

    一.Log4j基本使用方法 Log4j由三个重要的组件构成:[日志信息的优先级],[日志信息的输出目的地],[日志信息的输出格式]. 日志信息的优先级从高到低有ERROR.WARN. INFO.DEB ...

  8. Log4j使用详解(log4j.properties格式)

    Log4j使用详解(log4j.properties格式) 1.Log4j 的引入 在应用程序中添加日志记录总的来说基于三个目的: ① 监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计 ...

  9. org.apache.log4j.Logger详解

    org.apache.log4j.Logger 详解 1. 概述 1.1. 背景 在应用程序中添加日志记录总的来说基于三个目的 :监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工 ...

随机推荐

  1. javascript中NAN undefined 和null

    null 表示无值,而 undefined 表示一个未声明的变量,或已声明但没有赋值的变量,或一个并不存在的对象属性. NaN 属性是代表非数字值的特殊值.该属性用于指示某个值不是数字.可以把 Num ...

  2. 自己写的保证js顺序加载的方法

    var arr =["test1.js","test2.js","test3.js"] loadScripts:function(arr){ ...

  3. sql 中取整,四舍五入取整,向下取整,向上取整。

    SELECT round(52.45, 0) AS round4, round(52.54, 0) AS round5, round(52.45, 1) AS round41, round(52.54 ...

  4. 四:(之七_如何与运行中容器交互)Dockerfile语法梳理和实践

    1.指定网络连接方式:--net=””   (bridge/host/none/container: 四种类型) 注:192.168.33.18 此IP是在vagrantfile中指定的虚拟机IP:c ...

  5. n阶楼梯,一次走1,2,3步,求多少种不同走法

    ##已知n阶楼梯,一次可以迈1,2,3步.求所有走法## 如果要列出走法,时间复杂度太高,O(n)=2**n,前两个函数遍历走法.## 如果只是单纯列出走法数量,就简单多了,也但是很容易内存爆表. # ...

  6. linux curl http get 请求中带有中文参数或者特殊字符处理

    在使用c++去请求http服务的时候,使用的是著名的curl工具提供的类库 libcurl,但是在使用的过程中发现,如果请求的参数值带了空格或者是参数是中文,会导致响应的回调函数没有被执行,虽然cur ...

  7. python 如何生成好看的报告,在unittest的框架下

    怎么生成报告:需要导入BeautifulReport import BeautifulReport as bf import unittest class Test_login(unittest.Te ...

  8. linux安装mysql图文教程

    ---恢复内容开始--- 1.下载mysql [root@localhost ~]# yum install mysql mysql-server 输入y 输入y 输入y 下载完成 接下来我们要使用w ...

  9. 理解微信小程序的生命周期和运行原理

    写微信小程序,他的生命周期不能不知道,不知道小程序就会出现各种bug而无法解决.小助君公众号带你学习小程序的生命周期和运行原理. 小程序由两大线程组成:负责界面的线程(view thread)和服务线 ...

  10. scrapy初探(一)-斗鱼TV直播信息抓取

    由于有相关需求,最近两天开始学了一下scrapy 这次我们就以爬取斗鱼直播间为例,我们准备爬取斗鱼所有的在线直播信息, 包括1.主播昵称 2.直播领域 3.所在页面数 4.直播观看人数 5.直播间ur ...