首先建立项目

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. STL 小白学习(3) vector

    #include <iostream> using namespace std; #include <vector> void printVector(vector<in ...

  2. 简单函数template max

    #include <iostream> #include <vector> #include <algorithm> #include <string> ...

  3. mac 配置php+php_fpm+nginx

    首先brew安装前面文章上有的 安装nginx  brew install nginx #启动nginx sudo nginx #测试配置是否有语法错误 sudo nginx -t 测试成功 如果不加 ...

  4. 网络知识梳理--OSI七层网络与TCP/IP五层网络架构及二层/三层网络(转)

     reference:https://www.cnblogs.com/kevingrace/p/5909719.html https://www.cnblogs.com/awkflf11/p/9190 ...

  5. 网络爬虫之网站图片爬取-python实现

    版本1.5 本次简单添加了四路多线程(由于我电脑CPU是四核的),速度飙升.本想试试xPath,但发现反倒是多此一举,故暂不使用 #-*- coding:utf-8 -*- import re,url ...

  6. 网络编程 多线程/socketserver模块/ threading.local

    线程:进程中负责程序执行的执行单元. 多线程:在1个进程中存在多个线程. 进程只是用来把资源集中在一起,而线程才是cpu上的执行单位. 每个进程都会默认有一个控制线程也叫作主线程. 进程之间是竞争关系 ...

  7. MacBook使用笔记1 - 快捷键与命令学习

    转载请标注原链接:http://www.cnblogs.com/xczyd/p/4846795.html 最近开始使用mac air,以前从来没有接触过mac,各种操作捉急.Mac快捷键相当多,遇到各 ...

  8. Unity C#图片转换二进制流、字符串互转

    图片转二进制流转换图片互转 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享. ...

  9. 单例模式demo

    package com.test; /** * * @author Administrator *我的发现:调用这个的时候,不能直接实例化了;需要=null;然后get; 这样安全些; *然后仔细找了 ...

  10. MyCat配置详解

    MyCAT 配置解析 server.xml Mycat的配置文件,设置账号.参数等schema.xml Mycat对应的物理数据库和数据库表的配置rule.xml Mycat分片(分库分表)规则 一 ...