Log4j 入门总结


一、Log4j介绍


log4j是类似于java.util.logging的日志作用,即记录一些有用信息,是一个日志框架;

log4j == log for Java

日志框架的作用:

(1)函数参数是否正确;

(2)软件发布后,记录用户的每一步操作;

(3)记录程序运行出错位置;

log4j在http://logging.apache.org/log4j/1.2/download.html 中进行下载;

log4j的api文档在log4j/site/apidocs/index.html中;

log4j可以改变日志记录的形式比如HTML、Simple等;

log4j可以改变日志输出的目的地,比如File、DB等;

 

二、配置使用Log4j

 

原本是一个zip包,取出jar包,并在Eclipse的某个Project build path导入;

 

三、简单的使用Log4j

 

log4j需要配置文件log4j.properties进行配置,log4j.properties位于src目录下;


log4j.properties规则:

(1)键值对;

(2)#代表注释;

(3)不支持中文;


Log4jDemo.java


package org.impl;import org.apache.log4j.Logger;public class Log4jDemo {public static void main(String args[]){Logger logger = Logger.getLogger(org.impl.Log4jDemo.class);logger.debug("debug");logger.info("info");logger.error("error");}
}
log4j.properties


log4j.rootLogger=debug,appender1
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout

显示结果:

[main] DEBUG org.impl.Log4jDemo - debug
[main] INFO org.impl.Log4jDemo - info
[main] ERROR org.impl.Log4jDemo - error


这样一个简单的log4j应用。

 

这个配置文件的意思是:

rootLogger表示最低显示等级,即显示debug等级及以上的信息;

appender1表示一个名字;

ConsoleAppender表示输出到控制台,如果想要输出到文件,则可以使用FileAppender并制定文件名称;

TTCCLayout是一种布局方式;

debug等级表示在编译开发阶段的信息;

error等级表示错误信息;

info等级表示一般的信息;

 

如果看到如下信息:

log4j:WARN No appenders could be found for logger (org.impl.Log4jDemo).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
表示配置文件位置不正确,应该放到src目录下!


四、逐步了解Log4j

任务1:将日志输出到指定文件

只需要修改配置文件即可,配置文件修改为:


log4j.rootLogger=debug,appender1
log4j.appender.appender1=org.apache.log4j.FileAppender
log4j.appender.appender1.File=./java0.log
log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout

 

这样就指定了日志输出到工程目录下的java0.log文件中;

注意:这个日志文件时追加类型的。

 

任务2:将日志输出以HTML格式输出(效果很好!)

修改配置文件为:

log4j.rootLogger=debug,appender1
log4j.appender.appender1=org.apache.log4j.FileAppender
log4j.appender.appender1.File=./java0.html
log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout

即可;

 

任务3:同时输出到控制台和文件

修改配置文件为:

log4j.rootLogger=debug,appender1,appender2
log4j.appender.appender1=org.apache.log4j.FileAppender
log4j.appender.appender1.File=./log4j.HTML
log4j.appender.appender1.layout=org.apache.log4j.HTMLLayoutlog4j.appender.appender2=org.apache.log4j.ConsoleAppender
log4j.appender.appender2.layout=org.apache.log4j.SimpleLayout


五、Log4j核心组件

 

1.Logger

 

设定了显示日志的级别;

常用级别为debug,info,warn,error,fatal;

 

2.Appender

 

设定了日志的输出目的;

常用有:

(1)ConsoleAppender

(2)FileAppender

(3)DailyRollingFileAppender  一天换一个文件

(4)JdbcAppender   输出到数据库
 

3.Layout

 

设定日志的内容格式;

 

常用有:

(1)HTMLLayout;

(2)TTCCLayout;

(3)PatternLayout;制定布局样式

 

如果要设置PatternLayout,必须将配置文件修改为以下形式:


log4j.rootLogger=debug,appender1,appender2
log4j.appender.appender1=org.apache.log4j.FileAppender
log4j.appender.appender1.File=./log4j.HTML
log4j.appender.appender1.layout=org.apache.log4j.HTMLLayoutlog4j.appender.appender2=org.apache.log4j.ConsoleAppender
log4j.appender.appender2.layout=org.apache.log4j.PatternLayoutlog4j.appender.appender2.layout.ConversionPattern= 格式名称


格式形式如下:


%p:日志优先级(debug、info)

%t:输出日志的线程名;

%d{yyyy-MM-dd HH:mm:ss}:时间;

%c:所属类名;

%r:日志输出所花时间;

%n:换行;

%l:日志所在行;

%m:信息;

%M:方法;

 

比如:


%r [%t] -%l %p %d{yyyy-MM-dd HH:mm:ss} %n

显示如下:

3 [main] -org.impl.Log4jDemo.main(Log4jDemo.java:10) ERROR 2012-01-11 17:11:37


3表示所花时间;

[main]表示线程;

org.impl.Log4jDemo.main(Log4jDemo.java:10) 表示   %l   ;

ERROR表示%p;

 

 

 

 


 


转载于:https://www.cnblogs.com/xiazdong/archive/2012/01/11/3058101.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/576662.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ElasticSearch API文档查看

elastic官方API文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/docs.html

机器学习笔记(五)——朴素贝叶斯分类

一、分类问题 分类实际上是我们在日常生活中经常使用的。比如说,在工作中,把自己手头的任务分为轻重缓急,然后按照优先级去完成它们。 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。 从数学的角度看C{c1,c2,…,ck}是类别的…

delphi函数,识别字符集编码

纪念不用 Delphi 开发7周年函数,获取web page文本,识别字符集编码;1 function CreateHttpRequest(proxyServer: string ; proxyPort: integer 0):2 TIdHTTP;3 function DecodeHttpRequestText(InString: string): string;4 implementatio…

取消Win7关机时的补丁更新

取消Win7关机时的补丁更新作者:三好 阅读: 30037人文:陕西 三好 Windows操作系统一直是在缝缝补补中前行的,Win7也不例外。由于系统自带的更新更安全更可靠,所以好多朋友都喜欢使用,如果将系统默认的“自动…

jdk下载

oracle官网:https://developer.oracle.com/java/ 一直往下拉到最低部 这里选择你需要的历史版本,我就选择 安装就不用我多说了,和以前安装jdk一样安装,配置环境变量

机器学习笔记(五)续——朴素贝叶斯算法的后验概率最大化含义

上一节中讲了朴素贝叶斯算法将实例分到后验概率最大的类。这等价于期望风险最小化。 假设使用0-1损失函数: L(Y,f(X)){1,0,Y≠f(X)Yf(X)L(Y, f(X)) = \Bigg\{ \begin{array} {ll}1, & Y \neq f(X) \\0, & Y = f(X)\end{array}上式中的f(x)是分类决策函数…

项目管理汇总

一、一个失败软件项目的思考 http://kb.cnblogs.com/page/113051/ 二、我们需要真正的软件项目经理 http://wangacidlemon.iteye.com/blog/1185903 评论写的不错,粘贴来先给大家分享一下 一个好的项目负责人,是不会自己去做具体事情的,他应…

ElasticSearch和solr的对比

关于ES:ElasticSearch是一个事实分布式搜索和分析引擎,使用其可以以前所未有的速度处理大数据,他用于全文搜索、结构化搜索、分析以及将这三者混合使用。维基百科使用ElasticSearch提供全文搜索并高亮关键字,以及输入实时搜索(sea…

机器学习笔记(六)——朴素贝叶斯法的参数估计

一、极大似然估计 在上一笔记中,经过推导,得到了朴素贝叶斯分类器的表示形式: yargmaxckP(Yck)∏jP(X(j)x(j)|Yck)(1)也就是说,朴素贝叶斯方法的学习是对概率P(Yck)和P(X(j)x(j)|Yck)的估计。故可以用极大似然估计法估计上述先验…

ElasticSearch和mysql对比

以员工文档 的形式存储为例:一个文档代表一个员工数据。存储数据到 ElasticSearch 的行为叫做索引,但在索引一个文档之前,需要确定将文档存储在哪里。一个 ElasticSearch 集群可以包含多个 索引,相应的每个索引可以包含多个类型 。…

最优化学习笔记(一)——牛顿法(一维搜索方法)

一、一维搜索方法 讨论目标函数为一元单值函数f:R→R时的最优化问题的迭代求解方法。 二、局部极小点的条件 n元实值函数f的一阶导数Df为: Df≜[∂f∂x1,∂f∂x2,…,∂f∂xn]Df \triangleq \lbrack \frac{\partial f}{\partial x_1}, \frac{\partial f}{\partia…

针对12306.cn网站应用架够的一些看法

临近年终,公司请来一位讲师来给我们作培训,题目记得是设计匠艺。说实话,我做不到像讲师那样,快讲完课时能将自己所讲的内容都有条理整理一遍。我就大致讲讲我所做笔记的一些内容吧。总的来说这位讲师的实践经验很丰富,…

机器学习笔记(七)——决策树模型

引言 决策树(Decision Tree)是一种基本的分类和回归方法。它的扩展方法有GBDT和GBRT 等。决策树模型的学习过程主要有特征选择、决策树生成和剪枝。主要算法有ID3、C4.5和CART等。 一、决策树模型 决策树首先是一个树形结构,它包括两种类型…

ElasticSearch获取多个文档Multi GET API介绍

#■同时获取多个文档信息 #■例子:获职index:bank和shakespeare下面 #. I0为1.2.3.4.15.6.28的文档信息 GET /bank/bank_account/1 GET /bank/bank_account/2 GET /shakespcare/line/3 GET /bank/bank_account/4 GET /shakespeare/line/15 #日数组[] GET /_mget {"docs&qu…

机器学习笔记(八)——决策树模型的特征选择

一、引言 决策树构建过程中的特征选择是非常重要的一步。特征选择是决定用哪个特征来划分特征空间,特征选择是要选出对训练数据集具有分类能力的特征,这样可以提高决策树的学习效率。如果利用某一个特征进行分类与随机分类的结果没有很大的差别&#xf…

Bulk批量操作API的介绍

#多重模式 #批量操作bulk POST /library/books/_bulk {"index": {"_id": 1}} {"title":"Elasticsearch: The Definitive Guide","price":5} {"index": {"_id": 2}} {"title":"The Elast…

[转】:Android调试工具及方法

http://www.cnblogs.com/feisky/archive/2010/01/01/1637566.html--LogcatDump一份系统消息的日志。这些消息包括模拟器抛出错误时的堆栈跟踪。Android Log一个记录日志的类,用来将消息写入模拟器上的日志文件中。如果你在DDMS上运行logcat的话你可以就实时查看消息…

机器学习笔记(九)——决策树的生成与剪枝

一、决策树的生成算法 基本的决策树生成算法主要有ID3和C4.5, 它们生成树的过程大致相似,ID3是采用的信息增益作为特征选择的度量,而C4.5采用信息增益比。构建过程如下: 从根节点开始,计算所有可能的特征的信息增益(信…

apache+webdav的安装配置

原始资料:http://www.howtoforge.com/setting-up-webdav-with-apache2-on-debian-etch apachewebdav的安装配置 需求:1.开启一个web服务,使得客户端能够像操作本地磁盘一样操作服务端某个文件目录下的文件在服务器上安装配置apachewebdav模块…