log4j 日志配置

 

Log4j教程 - Log4j安装

 

Log4j API包是根据Apache软件许可证分发的。

最新的log4j版本,包括全源代码,类文件和文档可以在http://logging.apache.org/log4j/找到。

我们可以从上面的链接下载apache-log4j-x.x.x.tar.gz或zip文件。

支持库

我们可以使用log4j将信息记录到各种目的地,例如发送电子邮件,数据库或文件。

有一个我们需要放到classpath的库的列表,以便log4j可以拿起它并使用它。

例如,当从log4j发出电子邮件时,我们需要电子邮件库jar文件。

库是可选的,并且取决于我们将要与log4j框架一起使用的功能。

  • JavaMail API(mail.jar): 从https://glassfish.dev.java.net/javaee5/mail/用于基于电子邮件的日志记录。

  • JavaBeans Activation Framework(activation.jar): 来自http://java.sun.com/products/javabeans/jaf/index.jsp。

  • Java Message Service: 用于JMS和JNDI。

  • XML Parser(Xerces.jar): 来自http://xerces.apache.org/xerces-j/install.html。

Maven和Log4j

首先,使用以下maven命令创建一个空的Maven项目。

C:\mvn_test>mvn archetype:generate -DgroupId=com.w3cschool.ide -DartifactId=MyTest -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

然后,转到项目文件夹并找到pom.xml,添加以下依赖关系。

<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version>
</dependency>

 

之后,将以下代码添加到在resources文件夹下创建的log4j.properties。

MyTest|+-src|+-main|+-java|  ||  +-com|    ||    +-w3cschool|       ||       +-ide|+-resources|+- log4j.properties         

 

如上面的文件夹结构所示,资源位于java文件夹的保存级别。 

对于Java Web应用程序,将log4j.properties文件存储在WEB-INF/classes目录下 将以下配置保存到log4j.properties文件中。

# Root logger option
log4j.rootLogger=DEBUG, stdout, file# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n# Redirect log messages to a log file, support file rolling.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\log4j.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

 

最后一个%m%n 配置log4j以添加换行符。

%L设置从记录请求的行号。

%c{1}引用通过 getLogger()设置的日志记录名称。

%-5p设置日志记录优先级,如DEBUG或ERROR。

log4j日志级别配置参数说明:

#通过根日志记录器指定日志级别及输出源  
#日志输出的优先级:  debug < info < warn < error < fatal
#定义根日志记录器的日志级别(info)及输出源的别名(console,myFile)
#该定义让日志在控制台和文件输出,并且只输出info级别以上的日志
log4j.rootLogger=info,console,myFile#######配置输出源console的具体实现为控制台输出#######
#定义输出源别名console(即根日志记录器定义的输出源)
#的实现类是ConsoleAppender(控制台输出源)log4j.appender.console=org.apache.log4j.ConsoleAppender 
#指定日志输出格式的格式转换器为PatternLayout实现类
log4j.appender.console.layout=org.apache.log4j.PatternLayout
#定义日志输出的具体格式
log4j.appender.console.layout.ConversionPattern=%d %-5p [%c.%M()] - %m%n #######配置输出源myFile的具体实现为文件输出####### #定义输出源别名myFile(即根日志记录器定义的输出源) #的实现类是RollingFileAppender(文件输出源)log4j.appender.myFile=org.apache.log4j.RollingFileAppender #定义日志文件的存储路径 log4j.appender.myFile.File=src/log/logProperties/log4j.log #定义日志文件的大小 log4j.appender.myFile.MaxFileSize=1024kb #定义日志文件最多生成几个(从0开始算1个,即此处最多3个文件) #超过该大小则会覆盖前面生成的文件 log4j.appender.myFile.MaxBackupIndex=2 #指定日志输出格式的格式转换器为PatternLayout实现类 log4j.appender.myFile.layout=org.apache.log4j.PatternLayout #定义日志输出的具体格式 log4j.appender.console.layout.ConversionPattern=%d %-5p [%c.%M()] - %m%n #######输出格式解释####### #%d: 日志打印的时间点,默认格式为ISO8601,也可以另外指定格式, #定义如下: %d{yyy年MM月dd日 HH时mm分ss秒SSS},则会输出: #2018年01月06日 14时47分45秒590 #%p: 输出日志级别,即DEBUG,INFO,WARN,ERROR,FATAL #%-5p:表示字符小于5位,则字符居左(不加“-”号则字符居右),你可以举一反三 #%c: 日志所在类的全名 #%M: 日志所在方法的名字 #%m: 日志信息 #%n: 输出一个回车换行符 #%L: 输出代码中的行号

最后添加以下代码App.java并运行应用程序。

package com.w3cschool.ide;import org.apache.log4j.Logger;public class App{final static Logger logger = Logger.getLogger(App.class);public static void main(String[] args) {App obj = new App();obj.runMe("w3cschool");}private void runMe(String parameter){if(logger.isDebugEnabled()){logger.debug("This is debug : " + parameter);}if(logger.isInfoEnabled()){logger.info("This is info : " + parameter);}logger.warn("This is warn : " + parameter);logger.error("This is error : " + parameter);logger.fatal("This is fatal : " + parameter);}}

 

以下代码显示如何记录异常。

import org.apache.log4j.Logger;public class App {final static Logger logger = Logger.getLogger(App.class);public static void main(String[] args) {App obj = new App();try {obj.divide();} catch (ArithmeticException ex) {logger.error("Sorry, something wrong!", ex);}}private void divide() {int i = 10 / 0;}}

 

转载于:https://www.cnblogs.com/daijiabao/p/11217049.html

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

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

相关文章

理解transformer

文章目录1 注意力机制2 自注意力机制3 自注意力机制加强版4 Transformer的结构4.1 input4.2 encoder4.2.1 Multi-head attention4.2.2 残差链接4.2.3 层正则化layer norm4.2.4 前馈神经网络 feed forward network4.3 decoder4.3.1 输入4.3.1 Masked Multi-head attention4.3.2 …

第一百三十七期:一个简单的小案例带你理解MySQL中的事务

事务又叫做TCL&#xff0c;全称是transaction control language&#xff0c;意思是事务控制语言。 作者&#xff1a;Java的架构师技术栈 事务又叫做TCL&#xff0c;全称是transaction control language&#xff0c;意思是事务控制语言。这篇文章还是属于我的mysql基础文章&…

解决ffmpeg拉流转发频繁丢包问题max delay reached. need to consume packet

软件&#xff1a; 1、流媒体服务器EasyDarwin-windows-8.1.0-1901141151 2、ffmpeg-20181001-dcbd89e-win64-static 3、直播源&#xff1a;rtsp://192.168.1.168/0 4、流媒体服务器EasyDarwin地址rtsp://192.168.1.28/3 问题现象 [rtsp 0000000000122bc0] max delay reached. …

第一百三十八期:37 个MySQL数据库小知识,为面试做准备

无论是运维、开发、测试&#xff0c;还是架构师&#xff0c;数据库技术是一个必备加薪神器&#xff0c;那么&#xff0c;一直说学习数据库、学MySQL&#xff0c;到底是要学习它的哪些东西呢? 作者&#xff1a;芒果教你学编程 无论是运维、开发、测试&#xff0c;还是架构师&…

NLG模块实现(未完成)

NLG(Natural Language Generation)&#xff0c;计算机将结构化数据转换为文本并以人类语言编写信息。 使用GPT框架完成NLG任务。GPT模型是预训练模型&#xff0c; 采用两阶段过程&#xff0c;第一个阶段是利用语言模型进行预训练&#xff08;无监督形式&#xff09;&#xff0c…

android adb shell常用命令(四)

一、简介 adb命令是adb这个程序自带的一些命令&#xff0c;而adb shell则是调用的Android系统中的命令&#xff0c;这些andorid特有的命令都放在来Android设备的system/bin目录下。 二、常用命令介绍 pm Pacage Manager&#xff0c;可以获取到一些安装在Android设备上的应用信息…

第一百三十九期:11月数据库排行:排名前三数据库分数暴跌

DB-Engines 数据库流行度排行榜 11 月更新已发布&#xff0c;与上期数据相比&#xff0c;这期排行榜最大的亮点就是排名前三数据库那引人注目的“红色”分数。 作者&#xff1a;局长 DB-Engines 数据库流行度排行榜 11 月更新已发布&#xff0c;排名前二十如下&#xff1a; ▲…

对话系统之NLU总结报告

文章目录1 项目介绍1.1 背景知识介绍1.2 数据集介绍1.3 评价指标2 技术方案梳理2.1 模型目标2.2 模型介绍2.3 模型实现2.3.1 数据处理2.3.2 构建dataset2.3.3 模型定义2.3.4 训练相关参数2.3.5 训练结果3 项目总结1 项目介绍 1.1 背景知识介绍 对话系统按领域分类&#xff0c…

Windows SDK编程之一 窗口示例程序

/*Win32应用程序框架主要由"初始化窗口类"&#xff0c;"窗口注册类"&#xff0c;"窗口的创建"以"窗口消息函数"等组成*/ #include "stdafx.h" LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); //窗口函数说明 /* Win…

Ubuntu下用apache+perl搭建最简单的聊天室

最近学习了下perl&#xff0c;尝试自己搭建一个聊天室&#xff0c;现已搭建成功&#xff0c;但设计方法很简陋&#xff0c;误见笑&#xff0c;收获在于对apache、html、perl都有了些许认识&#xff0c;后面打算学习LAMP&#xff08;LinuxApacheMySQLPHP&#xff09;搭建一个在线…

闲聊型对话系统之NLG总结报告

文章目录1 项目介绍1.1 背景知识介绍1.2 NLG的实现方式1.2.1 基于模板1.2.2 检索式1.2.3 生成式1.3 数据集介绍2 技术方案梳理2.1 模型介绍2.2 评价指标2.3 模型实现2.3.1 数据处理2.3.2 构建dataset2.3.3 模型定义2.3.4 训练相关参数2.3.5 训练结果1 项目介绍 1.1 背景知识介…

spring mvc学习(50):java.lang.ClassNotFoundException: org.springframework.web.servlet. DispatcherSe

今天朋友发了个maven项目给我看&#xff0c;问我为什么启动不了。说实话&#xff0c;一直用Jfinal都快不会用spring了… 还是决定看看。 接收了文件&#xff0c;是maven构建的&#xff0c;打开eclipse&#xff0c;导入maven项目&#xff0c;然后部署到tomcat&#xff0c;启动t…

Luogu2439 [SDOI2005]阶梯教室设备利用 (动态规划)

同上一题&#xff0c;区间改左闭右开就双倍经验了。貌似可以跑最长路。 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #define R(a,b,c) for(register int a (b); a < (c); a) #defi…

Python是如何进行内存管理的

从三个方面来说,一对象的引用计数机制,二垃圾回收机制,三内存池机制 一、对象的引用计数机制 Python内部使用引用计数&#xff0c;来保持追踪内存中的对象&#xff0c;所有对象都有引用计数。 引用计数增加的情况&#xff1a; 1&#xff0c;一个对象分配一个新名称 2&#xf…

spring mvc学习(51):jsonp

引入jar包 pom.xml <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">…

抓狂

每次要给财务提交timecard报表&#xff0c; 就会遇到那些乱七八糟的事情&#xff0c; 浪费时间而无意义&#xff0c; 几个小时之后&#xff0c;我真的都想杀人&#xff0c; 在杀人与不杀之间徘徊良久&#xff0c;终于忍住&#xff0c; 那些PM根本就不负起自己的责任&#xff0c…

什么是word2vector

原文地址&#xff1a;https://www.julyedu.com/questions/interview-detail?quesId2761&cateNLP&kp_id30 什么是 Word2vec? 在聊 Word2vec 之前&#xff0c;先聊聊 NLP (自然语言处理)。NLP 里面&#xff0c;最细粒度的是 词语&#xff0c;词语组成句子&#xff0c…

spring mvc学习(52):json数据类型提交

引入jar包 pom.xml <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">…

关注:Eclipse,转贴eclipse CDT的开发文章

致谢&#xff1a;Tinyfool的鼎立相助&#xff01; cdt是在eclipse中编写C程序的插件&#xff0c;虽然还不是很完美&#xff0c;但是是在windows中编写linux下C程序&#xff08;GNU C&#xff09;的一个好途径。按照eclipse的官方网站的要求&#xff0c;要下载如下的东东…

[译作]Class in Jscript Part I

【原文地址】 Classes in Jscript - Part I 【原文发表日期】 Monday, September 24, 2007 9:23 AM by don.raman 我是Ritesh Parikh&#xff0c;最近刚转入Jscript Team作一名SDET&#xff08;译注&#xff1a;我也不知道SDET是什么样的岗位:(&#xff09;。我刚接触Jscript…