log4j一些配置用法
基本使用方法:
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!
- <p>下面是配置文件log4j.properties</p>
- <p></p>
- <pre code_snippet_id="2005179" snippet_file_name="blog_20161124_2_572588" name="code" class="html">log4j.rootLogger= Console,Info,Warn, Error,Fatal
- #Console
- log4j.appender.Console=org.apache.log4j.ConsoleAppender
- log4j.appender.Console.layout=org.apache.log4j.PatternLayout
- log4j.appender.Console.Threshold = OFF
- #Info
- log4j.appender.Info=com.xcinfo.cool.util.LogUtil
- log4j.appender.Info.File=./cold_chain_log_info.log
- log4j.appender.Info.layout=org.apache.log4j.PatternLayout
- log4j.appender.Info.Threshold = INFO
- log4j.appender.Info.File.DatePattern='.'yyyy-MM-dd'.log'
- #Warn
- log4j.appender.Warn=com.xcinfo.cool.util.LogUtil
- log4j.appender.Warn.File=./cold_chain_log_warn.log
- log4j.appender.Warn.layout=org.apache.log4j.PatternLayout
- log4j.appender.Warn.Threshold = DEBUG
- log4j.appender.Warn.File.DatePattern='.'yyyy-MM-dd'.log'
- #Error
- log4j.appender.Error=com.xcinfo.cool.util.LogUtil
- log4j.appender.Error.File=./cold_chain_log_err.log
- log4j.appender.Error.layout=org.apache.log4j.PatternLayout
- log4j.appender.Error.Threshold = ERROR
- log4j.appender.Error.File.DatePattern='.'yyyy-MM-dd'.log'
- #Fatal
- log4j.appender.Fatal=com.xcinfo.cool.util.LogUtil
- log4j.appender.Fatal.File=./cold_chain_log_fatal.log
- log4j.appender.Fatal.layout=org.apache.log4j.PatternLayout
- log4j.appender.Fatal.Threshold = FATAL
- log4j.appender.Fatal.File.DatePattern='.'yyyy-MM-dd'.log'
- </pre><br>
- 配置简要说明:<br>
- <br>
- log4j.appender.test.File=./xc_app_log_error.log "表示输出文件路径"<br>
- log4j.appender.RollingFile.File.DatePattern='.'yyyy-MM-dd'.log' <br>
- 表示每天生成一个日志文件,当天的日志文件会保存在xc_app_log_error.log文件中<br>
- 到了第二天,会将昨天的日志文件xc_app_log_error.log保存为xc_app_log_error.'yyyy-MM-dd'.log',并将第二天的文件保存在新的<br>
- xc_app_log_error.log文件中,以此类推每过一天就追加一天的日志文件<br>
- <br>
- <p></p>
- <p>log4j.appender.RollingFile.Threshold =日志级别 分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG<br>
- <br>
- <br>
- static Level DEBUG<br>
- DEBUG Level指出细粒度信息事件对调试应用程序是非常有帮助的。<br>
- <br>
- static Level INFO<br>
- INFO level表明 消息在粗粒度级别上突出强调应用程序的运行过程。<br>
- <br>
- static Level WARN<br>
- WARN level表明会出现潜在错误的情形。<br>
- <br>
- static Level ERROR<br>
- ERROR level指出虽然发生错误事件,但仍然不影响系统的继续运行。<br>
- <br>
- static Level FATAL<br>
- FATAL level指出每个严重的错误事件将会导致应用程序的退出。<br>
- <br>
- 另外,还有两个可用的特别的日志记录级别: (以下描述来自log4j API http://jakarta.apache.org/log4j/docs/api/index.html):<br>
- static Level ALL<br>
- ALL Level是最低等级的,用于打开所有日志记录。<br>
- <br>
- static Level OFF<br>
- OFF Level是最高等级的,用于关闭所有日志记录。<br>
- </p>
- <p><br>
- </p>
- <p><br>
- </p>
- <p><br>
- <br>
- <br>
- </p>
- <pre></pre>
- <div style="top:1474px"><br>
- </div>
- <div style="top:1474px"><br>
- <br>
- </div>
- <div style="top:1532px"><br>
- </div>
- <div style="top:0px"><br>
log4j一些配置用法的更多相关文章
- Log4J实用配置指南
转自:http://www.cnblogs.com/licheng/archive/2008/08/23/1274566.html 1 概述 本文档是针对Log4j日志工具的使用指南. ...
- java日志框架log4j详细配置及与slf4j联合使用教程
最后更新于2017年02月09日 一.log4j基本用法 首先,配置log4j的jar,maven工程配置以下依赖,非maven工程从maven仓库下载jar添加到“build path” <d ...
- [转载]java日志框架log4j详细配置及与slf4j联合使用教程
一.log4j基本用法 首先,配置log4j的jar,maven工程配置以下依赖,非maven工程从maven仓库下载jar添加到“build path” 1 2 3 4 5 <dependen ...
- java日志框架log4j详细配置及与slf4j使用教程
一.log4j基本用法 首先,配置log4j的jar,maven工程配置以下依赖,非maven工程从maven仓库下载jar添加到“build path” 1 2 3 4 5 <dependen ...
- Log4j:log4j.properties 配置解析
Log4j 三个主要组件 Loggers(记录器):记录日志的工具,程序中就是用它来记录我们想要的日志信息. Appenders (输出源):日志输出到什么地方,可以是控制台.文件.流位置.数据库,等 ...
- log4j.properties和log4j.xml配置
>>>>1. 概述<<<< 1.1. 背景 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统 ...
- CentOS7下Firewall防火墙配置用法详解
官方文档地址: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide ...
- commons-logging和Log4j 日志管理/log4j.properties配置详解
commons-logging和Log4j 日志管理 (zz) 什么要用日志(Log)? 这个……就不必说了吧. 为什么不用System.out.println()? 功能太弱:不易于控制.如果暂时不 ...
- springmvc 项目完整示例06 日志–log4j 参数详细解析 log4j如何配置
Log4j由三个重要的组件构成: 日志信息的优先级 日志信息的输出目的地 日志信息的输出格式 日志信息的优先级从高到低有ERROR.WARN. INFO.DEBUG,分别用来指定这条日志信息的重要程度 ...
随机推荐
- shell 获取指定ip的丢包率
shell 获取指定ip的丢包率 丢包率大于10%就重新网络 使用sed 替换字符串 [[ $(ping -c 10 -W 1 baidu.com | awk '$6 ~ /%/{print $6}' ...
- 关于openstack 专业博主地址.后续更新
首先官方文档要放的 https://docs.openstack.org/ 关于导入镜像方面说的很详细的. https://www.cnblogs.com/liawne/p/9322221.html ...
- GoEasy实现websocket 推送消息通知到客户端
最近在实现一个推送功能,用户扫描二维码签到,后台及时将签到成功信息推送到浏览器端.排除了前端ajax轮询的方式,决定采用websocket及时推送. 于是发现了第三方websocket推送库GoEas ...
- ICEM-水雷
原视频下载地址: https://yunpan.cn/cqhsvXAKUQEA4 访问密码 ef39
- java后台服务器向Nodejs客户端发送压缩包文件
java代码: Map map=new HashMap(); try { //获取本地文件转换成字符换 File file = new File(apppath);//"D:/upload/ ...
- C++ replace replace_if replace_copy replace_copy_if
#include <iostream>#include <list>#include <algorithm>#include <iterator>#in ...
- 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_17-异常处理-可预知异常处理-异常处理测试
ResultCode有很多的实现类 cmsCode有很多类型的错误异常 pgeService内当CmsPage这个对象为空的时候,异常类型就可以抛出CmsCode里面的错误代码 if(cmsPage1 ...
- Qt编写安防视频监控系统7-全屏切换
一.前言 全屏切换这个功能点属于简单的,一般会做到右键菜单中,也提供了快捷键比如alt+enter来触发,恢复全屏则按esc即可,全屏处理基本上都是隐藏通道面板以外的窗体,保持最大化展示,由于采用了模 ...
- 一个数独引发的惨案:零知识证明(Zero-Knowledge Proof)
导言:原文的作者是著名的Ghost和Spectre 这两个协议的创始团队的领队Aviv Zohar.原文作者说他的这篇原文又是引用了以下这两篇学术论文: How to Explain Zero Kno ...
- 使用 bash 脚本把 GCE 的数据备份到 GCS
目录 一.Google Cloud Storge 介绍 1.1.四种存储类别的比较 1.2.需求 1.3.给虚拟机添加授权认证 二.备份操作 2.1 创建存储分区 2.2 上传对象到存储分区 2.3 ...