Java日志工具之Log4J
Log4J与java.util.logging.Logger的使用方式出奇的相似,因此如果先看这篇文章《Java日志工具之java.util.logging.Logger》在来用Log4J简直是水到渠成。
与java.util.logging.Logger的共性与不同
看看Log4J与java.util.logging.Logger的共性和不同吧:
- Log4J也是通过工厂方法获取Logger对象;
- Log4j的的Appender对等于logging.Logger的handler,都有控制台、文件等方式;
- Log4J的Layout对等于logging.Logger的Formatter;
- Log4J和logging.Logger都使用名称空间和继承关系;
- Log4J没有默认的Appender,但可以调用函数
BasicConfigurator.configure()
设置root的默认处理方式;而logging.Logger在默认的配置文件中为root默认配置了handler;
- Log4J日志级别略有不同:从低到高以此是TRACE,DEBUG,INFO,WARN,ERROR,FATAL;
- Log4J自定义配置文件更方便,因为它有相应的方法:
PropertyConfigurator.configure
不用配置文件的示例
首先来个形象的代码:
package net.oseye; import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout; public class RunMain { public static void main(String[] args) {
BasicConfigurator.configure();//默认配置,设置root的Appender
Logger log=Logger.getLogger(RunMain.class);
//添加一个Appender
log.addAppender(new ConsoleAppender(new PatternLayout()));
log.setLevel(Level.TRACE);
log.warn("test");
}
}
Log4J没有默认的配置文件,所以如果没有给Logger添加Appender会报异常的,示例中设置了root的Appender,别的Logger可以继承root。而实例中又添加了一个自定义的Appender。
输出结果:
test
0 [main] WARN net.oseye.RunMain - test
使用配置文件的示例
package net.oseye; import java.io.File;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator; public class RunMain { public static void main(String[] args) {
Logger log=Logger.getLogger(RunMain.class);
PropertyConfigurator.configure("d:"+File.separator+"log4j.properties");
log.setLevel(Level.TRACE);
log.warn("test");
}
}
d:\log4j.properties配置文件内容如下:
log4j.rootLogger=DEBUG, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n
输出:
0 WARN [main] net.oseye.RunMain - test
基本上是不是和java.util.logging.Logge一样,呵呵。了解更多配置文件讲解请看《Log4J配置文件详解》。
Java日志工具之Log4J的更多相关文章
- java 日志技术汇总(log4j , Commons-logging,.....)
前言 在Tomcat 与weblogic 中的 日志(log4j) 配置系列一 在系列一 中, 有一个问题一直没有解决,就是部署到weblogic 中应用程序如何通过log4j写日志到文件中? 这里仅 ...
- Java学习笔记(十九)——Java 日志记录 AND log4j
[前面的话] 学习的进度应该稍微在快一点. Java日志到了必须学习怎么使用的时候了,因为在项目中要进行使用.基础性文章,选择性阅读. [结构] java日志对调试,记录运行,问题定位都起到了很重要的 ...
- Java日志框架 (commons-logging,log4j,slf4j,logback)
转自:http://blog.csdn.net/kobejayandy/article/details/17335407 如果对于commons-loging.log4j.slf4j.LogBack等 ...
- Java日志工具之java.util.logging.Logger
今天总结下JDK自带的日志工具Logger,虽然它一直默默无闻,但有时使用它却比较方便.更详细的信息可以查看JDK API手册,本文只是简单示例入门. 创建Logger 我们可以使用Logger的工厂 ...
- Java日志工具之SLF4J
SLF4J全称为Simple Logging Facade for Java (简单日志门面),作为各种日志框架的简单门面或者抽象,包括 java.util.logging, log4j, logba ...
- Java日志框架Slf4j+Log4j入门
一.日志系统介绍 slf4j,即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统.简答的讲就是slf4j是一系列的日志 ...
- Java日志介绍(2)-Log4j
Log4j是Apache的一个开源项目,官网地址为http://logging.apache.org/log4j/1.2/index.html.通过使用Log4j,可控制日志信息输出到控制台.文件.数 ...
- JAVA日志工具类
package com.ming.util; import java.io.File; import java.io.FileWriter; import java.io.IOException; i ...
- 日志工具全面理解及配置应用---以Log4j例子
一.日志系统基本常识 1.日志系统作用:将日志信息输出到控制台和文本文件,以追踪代码运行信息. 2.日志系统操作的是什么?日志系统打印信息,也是调用日志系统的log.Info(),log.Warn() ...
随机推荐
- git 配置SSH免密
1.安装TortoiseGit(比较简单,直接在官网上下载安装包安装) 2.打开下图标识 点击 generate按钮 生成key(需要等一会) 3.生成Key保存成.ppk文件,记得存放路径,(建 ...
- http的Max-Forwards头的作用(转)
请求头的Max-Forwards用来请求特定代理.当代理收到一个允许URI转发的OPTIONS请求,则检查Max-Forwards.如果Max-Forwards值为0,则不能转发该消息:相反,代理会将 ...
- 【Unity3d游戏开发】游戏中的贝塞尔曲线以及其在Unity中的实现
RT,马三最近在参与一款足球游戏的开发,其中涉及到足球的各种运动轨迹和路径,比如射门的轨迹,高吊球,香蕉球的轨迹.最早的版本中马三是使用物理引擎加力的方式实现的足球各种运动,后来的版本中使用了根据物理 ...
- overflow:hidden 你所不知道的事
overflow:hidden 你所不知道的事 overflow:hidden这个CSS样式是大家常用到的CSS样式,但是大多数人对这个样式的理解仅仅局限于隐藏溢出,而对于清除浮动这个含义不是很了解. ...
- Nancy简单实战之NancyMusicStore(三):完善商品信息与管理
前言 上一篇,我们做了不少准备,并且还把我们NancyFx音乐商城的首页打造好了.这一篇主要是完善我们在首页的商品浏览问题和添加对商品的管理. 下面开始正题: 商品详情 首先是查看单个商品的详情: 先 ...
- leetcode刷题总结
题外话 今年大三,现正值寒假时间,开学就开始大三下学期的生活了. 在大三临近结束的时间,也就是复习考试的时间里,我每天都会用早上的时间来刷codewars.刚开始玩的时候,一到8kyu的题目如果稍微难 ...
- 关于WIN10开机无法输入密码的问题
昨日,电脑 遇到了开机无法输入密码的问题,神烦. 作为一个计算狗,怎么能直接装系统(百度了一堆方法,装系统,果真万能)呢. 所以,深刻的分析了下. 1 .首先说明基本情况. 计算机品牌:ASUS 系统 ...
- C# 得到本机局域网IP地址
C#获取本机IP搜集整理7种方法:http://blog.csdn.net/frombegintoend/article/details/7713097 使用IPHostEntry获取本机局域网地址 ...
- ECMAScript 6 笔记(三)
ES6中的基本扩展 一.函数的扩展 1. 函数参数的默认值 ES6 允许为函数的参数设置默认值,即直接写在参数定义的后面. function log(x, y = 'World') { console ...
- Bootstrap WPF Style(二)--Glyphicons 字体图标
介绍 关于Glyphicons字体图标,首先给出友情链接 Glyphicons 这个项目是在Bootstrap WPF Style项目基础上做的,详见http://www.cnblogs.com/ts ...