基本使用方法:

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

日志信息的优先级

org.apache.log4j.Level类提供以下级别,但也可以通过Level类的子类自定义级别。

Level 描述
ALL 各级包括自定义级别
DEBUG 指定细粒度信息事件是最有用的应用程序调试
ERROR 错误事件可能仍然允许应用程序继续运行
FATAL 指定非常严重的错误事件,这可能导致应用程序中止
INFO 指定能够突出在粗粒度级别的应用程序运行情况的信息的消息
OFF 这是最高等级,为了关闭日志记录
TRACE 指定细粒度比DEBUG更低的信息事件
WARN 指定具有潜在危害的情况

日志级别是如何工作的?

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

下面的例子明确指出如何可以过滤所有的DEBUG和INFO消息。这个程序使用记录并执行setLevel(Level.X)方法来设置所需的日志记录级别。

这个例子将打印,除了调试和信息的所有消息:

import org.apache.log4j.*;

public class LogClass {
private static org.apache.log4j.Logger log = Logger
.getLogger(LogClass.class);
public static void main(String[] args) {
log.setLevel(Level.WARN); log.trace("Trace Message!");
log.debug("Debug Message!");
log.info("Info Message!");
log.warn("Warn Message!");
log.error("Error Message!");
log.fatal("Fatal Message!");
}
}

当编译并运行LogClass程序会产生以下结果:

Warn Message!
Error Message!
Fatal Message!

使用配置文件设置级别:

Log4j提供这些可以让程序员自由更改源代码,改变调试级别的配置级别是基于文件设置。

以下是上面的例子使用 log.setLevel(Level.WARN)方法的配置文件与上面的例子例子功能一样。

# Define the root logger with appender file
log = /usr/home/log4j
log4j.rootLogger = WARN, FILE # Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out # Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

现在,使用下面的程序:

import org.apache.log4j.*;

public class LogClass {
private static org.apache.log4j.Logger log = Logger
.getLogger(LogClass.class);
public static void main(String[] args) {
log.trace("Trace Message!");
log.debug("Debug Message!");
log.info("Info Message!");
log.warn("Warn Message!");
log.error("Error Message!");
log.fatal("Fatal Message!");
}
}

现在,编译和运行上面的程序,得到以下结果在 /usr/home/log4j/log.out 文件:

Warn Message!
Error Message!
Fatal Message!
  1. <p>下面是配置文件log4j.properties</p>
  2. <p></p>
  3. <pre code_snippet_id="2005179" snippet_file_name="blog_20161124_2_572588" name="code" class="html">log4j.rootLogger= Console,Info,Warn, Error,Fatal
  4. #Console
  5. log4j.appender.Console=org.apache.log4j.ConsoleAppender
  6. log4j.appender.Console.layout=org.apache.log4j.PatternLayout
  7. log4j.appender.Console.Threshold = OFF
  8. #Info
  9. log4j.appender.Info=com.xcinfo.cool.util.LogUtil
  10. log4j.appender.Info.File=./cold_chain_log_info.log
  11. log4j.appender.Info.layout=org.apache.log4j.PatternLayout
  12. log4j.appender.Info.Threshold = INFO
  13. log4j.appender.Info.File.DatePattern='.'yyyy-MM-dd'.log'
  14. #Warn
  15. log4j.appender.Warn=com.xcinfo.cool.util.LogUtil
  16. log4j.appender.Warn.File=./cold_chain_log_warn.log
  17. log4j.appender.Warn.layout=org.apache.log4j.PatternLayout
  18. log4j.appender.Warn.Threshold = DEBUG
  19. log4j.appender.Warn.File.DatePattern='.'yyyy-MM-dd'.log'
  20. #Error
  21. log4j.appender.Error=com.xcinfo.cool.util.LogUtil
  22. log4j.appender.Error.File=./cold_chain_log_err.log
  23. log4j.appender.Error.layout=org.apache.log4j.PatternLayout
  24. log4j.appender.Error.Threshold = ERROR
  25. log4j.appender.Error.File.DatePattern='.'yyyy-MM-dd'.log'
  26. #Fatal
  27. log4j.appender.Fatal=com.xcinfo.cool.util.LogUtil
  28. log4j.appender.Fatal.File=./cold_chain_log_fatal.log
  29. log4j.appender.Fatal.layout=org.apache.log4j.PatternLayout
  30. log4j.appender.Fatal.Threshold = FATAL
  31. log4j.appender.Fatal.File.DatePattern='.'yyyy-MM-dd'.log'
  32. </pre><br>
  33. 配置简要说明:<br>
  34. <br>
  35. log4j.appender.test.File=./xc_app_log_error.log    "表示输出文件路径"<br>
  36. log4j.appender.RollingFile.File.DatePattern='.'yyyy-MM-dd'.log'   <br>
  37. 表示每天生成一个日志文件,当天的日志文件会保存在xc_app_log_error.log文件中<br>
  38. 到了第二天,会将昨天的日志文件xc_app_log_error.log保存为xc_app_log_error.'yyyy-MM-dd'.log',并将第二天的文件保存在新的<br>
  39. xc_app_log_error.log文件中,以此类推每过一天就追加一天的日志文件<br>
  40. <br>
  41. <p></p>
  42. <p>log4j.appender.RollingFile.Threshold =日志级别   分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG<br>
  43. <br>
  44. <br>
  45. static Level DEBUG<br>
  46. DEBUG Level指出细粒度信息事件对调试应用程序是非常有帮助的。<br>
  47. <br>
  48. static Level INFO<br>
  49. INFO level表明 消息在粗粒度级别上突出强调应用程序的运行过程。<br>
  50. <br>
  51. static Level WARN<br>
  52. WARN level表明会出现潜在错误的情形。<br>
  53. <br>
  54. static Level ERROR<br>
  55. ERROR level指出虽然发生错误事件,但仍然不影响系统的继续运行。<br>
  56. <br>
  57. static Level FATAL<br>
  58. FATAL level指出每个严重的错误事件将会导致应用程序的退出。<br>
  59. <br>
  60. 另外,还有两个可用的特别的日志记录级别: (以下描述来自log4j API http://jakarta.apache.org/log4j/docs/api/index.html):<br>
  61. static Level ALL<br>
  62. ALL Level是最低等级的,用于打开所有日志记录。<br>
  63. <br>
  64. static Level OFF<br>
  65. OFF Level是最高等级的,用于关闭所有日志记录。<br>
  66. </p>
  67. <p><br>
  68. </p>
  69. <p><br>
  70. </p>
  71. <p><br>
  72. <br>
  73. <br>
  74. </p>
  75. <pre></pre>
  76. <div style="top:1474px"><br>
  77. </div>
  78. <div style="top:1474px"><br>
  79. <br>
  80. </div>
  81. <div style="top:1532px"><br>
  82. </div>
  83. <div style="top:0px"><br>

log4j一些配置用法的更多相关文章

  1. Log4J实用配置指南

    转自:http://www.cnblogs.com/licheng/archive/2008/08/23/1274566.html 1         概述 本文档是针对Log4j日志工具的使用指南. ...

  2. java日志框架log4j详细配置及与slf4j联合使用教程

    最后更新于2017年02月09日 一.log4j基本用法 首先,配置log4j的jar,maven工程配置以下依赖,非maven工程从maven仓库下载jar添加到“build path” <d ...

  3. [转载]java日志框架log4j详细配置及与slf4j联合使用教程

    一.log4j基本用法 首先,配置log4j的jar,maven工程配置以下依赖,非maven工程从maven仓库下载jar添加到“build path” 1 2 3 4 5 <dependen ...

  4. java日志框架log4j详细配置及与slf4j使用教程

    一.log4j基本用法 首先,配置log4j的jar,maven工程配置以下依赖,非maven工程从maven仓库下载jar添加到“build path” 1 2 3 4 5 <dependen ...

  5. Log4j:log4j.properties 配置解析

    Log4j 三个主要组件 Loggers(记录器):记录日志的工具,程序中就是用它来记录我们想要的日志信息. Appenders (输出源):日志输出到什么地方,可以是控制台.文件.流位置.数据库,等 ...

  6. log4j.properties和log4j.xml配置

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

  7. CentOS7下Firewall防火墙配置用法详解

    官方文档地址: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide ...

  8. commons-logging和Log4j 日志管理/log4j.properties配置详解

    commons-logging和Log4j 日志管理 (zz) 什么要用日志(Log)? 这个……就不必说了吧. 为什么不用System.out.println()? 功能太弱:不易于控制.如果暂时不 ...

  9. springmvc 项目完整示例06 日志–log4j 参数详细解析 log4j如何配置

    Log4j由三个重要的组件构成: 日志信息的优先级 日志信息的输出目的地 日志信息的输出格式 日志信息的优先级从高到低有ERROR.WARN. INFO.DEBUG,分别用来指定这条日志信息的重要程度 ...

随机推荐

  1. php安装扩展的地址

    1 查看扩展 phpinfo  or extention_loads  or php -m 下载扩展地址 http://pecl.php.net     or http://windows.php.n ...

  2. 树莓派打造mini广播(FM)系统

    树莓派打造mini广播(FM)系统 注意相关法律限制功率大小和频段.,以下只能用于测试目的 github项目: https://github.com/miegl/PiFmAdv 安装: apt-get ...

  3. Babel7知识梳理

    Babel7 知识梳理 对 Babel 的配置项的作用不那么了解,是否会影响日常开发呢?老实说,大多情况下没有特别大的影响(毕竟有搜索引擎). 不过呢,还是想更进一步了解下,于是最近认真阅读了 Bab ...

  4. 树莓派中将caplock映射为esc键

    据说,喜欢vimer都呵caplock有仇,明明caplock占着原来esc的位置,却从来没有起到应有的作用,你说气人吗,没关系,我改啊:将下面语句加入到.bashrc中,启动即可xmodmap -e ...

  5. mongodb高可用部署linux

    准备三台服务器,部署方案如下: 1.安装mongodb,详细不用说: 2.创建实例分别创建目录config.configServer.shard1.shard2.shard3.logs,分别存放实例配 ...

  6. Js中Array常用方法小结

    说起Array的方法,不免让人皱一下眉头,下面我们从增删改查角度依次来总结. 1.增 push: 将传入的参数 ,插入数组的尾部,并返回新数组的长度.不管传入参数为一个值还是一个数组,都作为插入数组的 ...

  7. Java并发指南16:JUC中常用的Unsafe和Locksupport

    原创文章,转载请注明: 转载自并发编程网 – ifeve.com 1. 什么是Fork/Join框架 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个 ...

  8. Vagrant 如何调整虚拟机的内存大小?

    https://docs.vagrantup.com/v2/virtualbox/configuration.html 最下面 config.vm.provider "virtualbox& ...

  9. VMware安装Centos7超详细过程

    本篇文章主要介绍了VMware安装Centos7超详细过程(图文),具有一定的参考价值,感兴趣的小伙伴们可以参考一下 一.软硬件准备 软件:推荐使用VMwear,我用的是VMwear 12 镜像:Ce ...

  10. 一步一步搭建Nuget私服

    大致流程:1. 通过VS创建一个Web空项目,然后通过Nuget引入Nuget.Server(目前最新版3.2.1).2. 直接将这个Web项目发布到IIS.3. 通过nuget.exe打包*.nup ...