log4j日志操作方法

使用Log4j进行日志操作 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。 立即下载

1.1准备工作
 一。Tomcat已正确配置与使用。
 二。软件下载:log4j------::URL::http://www.apache.org/dist/jakarta/log4j/jakarta-log4j-1.2.8.zip

 

 1.2. Log4j简介
 在强调可重用组件开发的今天,除了自己从头到尾开发一个可重用的日志操作类外,Apache为我们提供了一个强有力的日志操作包-Log4j。

 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

 此外,通过Log4j其他语言接口,您可以在C、C++、.Net、PL/SQL程序中使用Log4j,其语法和用法与在Java程序中一样,使得多语言分布式系统得到一个统一一致的日志组件模块。而且,通过使用各种第三方扩展,您可以很方便地将Log4j集成到J2EE、JINI甚至是SNMP应用中。本文介绍的Log4j版本是1.2.8,怎样通过一个配置文件来灵活地进行配置,主要的应用平台是Tomcat4.

 1.3。Log4j的配置。

 首先到jakarta下载一个log4j的组件。把jakarta-log4j-1.2.8/dist/lib下的log4j-1.2.8.jar文件copy到classpath指定的目录下!可以是Tomcat的common/lib目录下,也可以是你需要用到log4j的application下的lib目录。

 1.4在Application目录下的web.xml文件加入以后代码

 <servlet>
 <servlet-name>log4j</servlet-name>
 <servlet-class>com.apache.jakarta.log4j.Log4jInit</servlet-class>
 <init-param>
 <param-name>log4j</param-name>
 <param-value>/WEB-INF/log4j.properties</param-value>
 </init-param>
 <load-on-startup>1</load-on-startup>
 </servlet>

 这段代码的意思是说,在Tomcat启动时加载com.apache.jakarta.log4j.Log4jInit这个名叫Log4jInit.class这个类文件。其中Log4jInit.class的源代码如下

 package com.apache.jakarta.log4j;
 import org.apache.log4j.PropertyConfigurator;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 public class Log4jInit extends HttpServlet {
 public void init() {
 String prefix = getServletContext().getRealPath("/";
 String file = getInitParameter("log4j";
 // if the log4j-init-file is not set, then no point in trying
 System.out.println("................log4j start";
 if(file != null) {
 PropertyConfigurator.configure(prefix+file);
 }
 }
 public void doGet(HttpServletRequest req, HttpServletResponse res) {
 }
 }
 这段代码很简单,可以看出,在加载的过程中,程序会读取/WEB-INF/log4j.properties这个文件
 这个文件就是本文的重点,也就是log4j的配置文件。

 # Set root logger level to DEBUG and its only appender to A1 
 #log4j中有五级logger 
 #FATAL 0 
 #ERROR 3
 #WARN 4 
 #INFO 6 
 #DEBUG 7 
 #配置根Logger,其语法为:
 #log4j.rootLogger = [ level ] , appenderName, appenderName, …
 log4j.rootLogger=INFO, A1 ,R
 #这一句设置以为着所有的log都输出
 #如果为log4j.rootLogger=WARN, 则意味着只有WARN,ERROR,FATAL
 #被输出,DEBUG,INFO将被屏蔽掉.
 # A1 is set to be a ConsoleAppender. 
 #log4j中Appender有几层如控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等
 #ConsoleAppender输出到控制台 
 log4j.appender.A1=org.apache.log4j.ConsoleAppender 
 # A1 使用的输出布局,其中log4j提供4种布局. org.apache.log4j.HTMLLayout(以HTML表格形式布局)
 #org.apche.log4j.PatternLayout(可以灵活地指定布局模式),
 #org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
 #org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
 log4j.appender.A1.layout=org.apache.log4j.PatternLayout 
 #灵活定义输出格式 具体查看log4j javadoc org.apache.log4j.PatternLayout 
 #d 时间 .... 
 log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n 
 #R 输出到文件 RollingFileAppender的扩展,可以提供一种日志的备份功能。
 log4j.appender.R=org.apache.log4j.RollingFileAppender 
 #日志文件的名称
 log4j.appender.R.File=log4j.log 
 #日志文件的大小
 log4j.appender.R.MaxFileSize=100KB 
 # 保存一个备份文件
 log4j.appender.R.MaxBackupIndex=1 
 log4j.appender.R.layout=org.apache.log4j.TTCCLayout
 #log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
 配置以这里就差不多了,如果你想更深入了解配置文件的各个细节,可以去查看docs。还有,在文章的最后面我们提供配置文件中一些主要的语法。下面我们来看看怎样在程序中使用log4j.
 1.4 Log4j的使用。
 使用Log4j,第一步就是获取日志记录器,这个记录器将负责控制日志信息。其语法为:
 public static Logger getLogger( String name),
 必须在使用前要把这个类导入
 import org.apache.log4j.Logger;
 name一般是类文件的名字,如下:
 static Logger logger = Logger.getLogger ("".class.getName () ) ;
 您就可以轻松地使用不同优先级别的日志记录语句插入到您想记录日志的任何地方,其语法如下:
 logger.debug ( Object message ) ;
 logger.info ( Object message ) ;
 logger.warn ( Object message) ;
 logger.error ( Object message ) ;
 为什么这里要分级别的呢?试想一下,我们在写程序的时候,为了调试程序,会在很多会出错的地方加入大量的logger.info();信息。当然程序调试完毕,我们不需要这些输出信息了,那怎么办呢?以前的做法是把每个程序中的logger.info删除,但这是不现实的,如果程序不大还可以,但如果程序很多,做这些事情就很烦人了。但因为log4j分级别了,当我们不需要输出这样调试时用到的log.info()时,我们可以把输出的级别调高,如调到warn,或error级别,这样info级别及以下的级别就不会出输出了,是不是很方便的呢?
 其实除了这种使用方式,log4j还有其它的使用方面,不需要配置文件,直接在程序中定义输入出级别,层次等信息,如果要了解这方法的使用,可以参考文档。
 1.5。附注:
 以下是配置文件的一些重要的语法
 定义配置文件
 其实您也可以完全不使用配置文件,而是在代码中配置Log4j环境。但是,使用配置文件将使您的应用程序更加灵活。
 Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件(键=值)。下面我们介绍使用Java特性文件做为配置文件的方法:
 配置根Logger,其语法为:
 log4j.rootLogger = [ level ] , appenderName, appenderName, …
 其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。
 appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。
 配置日志信息输出目的地Appender,其语法为
 log4j.appender.appenderName = fully.qualified.name.of.appender.class
 log4j.appender.appenderName.option1 = value1
 …
 log4j.appender.appenderName.option = valueN
 其中,Log4j提供的appender有以下几种:
 org.apache.log4j.ConsoleAppender(控制台),
 org.apache.log4j.FileAppender(文件),
 org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
 org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
 配置日志信息的格式(布局),其语法为:
 log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
 log4j.appender.appenderName.layout.option1 = value1
 …
 log4j.appender.appenderName.layout.option = valueN
 其中,Log4j提供的layout有以下几种:
 org.apache.log4j.HTMLLayout(以HTML表格形式布局),
 org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
 org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
 org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

log4jappender配置kafka使用的jar包 log4jappender配置kafka使用的jar包 log4jappender配置kafka使用的jar包 log4jappender配置kafka使用的jar包 立即下载

相关推荐

Halcon 3D点云处理实战:从PLY文件读取到曲面匹配的完整流程(附避坑指南)

本文详细介绍了Halcon在3D点云处理中的完整流程,从PLY文件读取到曲面匹配,特别强调了3D算子的应用技巧和避坑指南。通过实战案例和参数优化建议,帮助开发者高效处理工业视觉检测中的复杂点云数据,提升匹配精度和性能。

weixin_42535720的博客 277

Spark 日志错误信息分析及解决方案:log4j、SLF4j

Spark 日志错误信息异常信息:(解决了好久的问题)1、log4j错误类「org.apache.log4j.Appender」被加载,「org.apache.log4j.ConsoleAppender」不能分配给「org.apache.log4j.Appender」,导致sparkContext初始化失败log4j:ERROR A "org.apache.log4j.ConsoleAppende...

T_Janey 4515

用Python+Charles搞定小程序付费短剧下载(附完整代码与避坑点)

本文详细介绍了如何利用Python和Charles抓包工具实现小程序付费短剧的自动化下载。通过分析小程序视频接口、破解请求参数,并编写Python脚本,读者可以轻松获取并保存短剧内容。文章还提供了完整的代码示例和常见问题的解决方案,特别适合对视频采集和抓包技术感兴趣的开发者。

weixin_28731231的博客 1187

使用log4j将spark on yarn任务的日志发送到kafka

1.将spark streaming以yarn cluster运行后,查看日志是一件比较麻烦的事情。 需要停止任务,再用yarn log命令收集。 而这无疑违背了实时程序7-24运行的原则。 2.在我搜索解决方法时,发现可以使用kafka-log4j-appender将日志发送到kafka的主题 在maven引入依赖 <dependency> <groupId>org.apache.kafka</groupId>

hello world 718

某10kV纺织厂供电系统设计【CAD图纸源码+Word文档】

本文详细介绍了设计变电所原始资料,负荷统计,基于负荷统计给出了变压器的选型,变电所主接线方式的设计、高低压母线、电缆的技术要求、短路电流的计算以及相关电气设备的保护参数及保护定值的计算、安全措施的规定。

weixin_761237174的博客 2742

保姆级教程:不用看古早代码,5分钟搞懂泛微ecology9附件存储与接口调用

本文详细解析了泛微ecology9附件存储与接口调用的核心原理,提供从基础概念到实战操作的完整指南。通过拆解文档化附件设计理念、解析RESTful接口参数,并给出Python代码示例,帮助开发者快速掌握附件上传与业务集成的关键技巧,提升二次开发效率。

weixin_28688385的博客 349

nodejs开发——log4js学习

在我们开发项目时,日志是必不可少的一部分,有助于我们排错、数据分析等等。而nodejs自带的console日志不太友好,比如不同级别的日志都是相同的颜色,很难区分。在开发Java时,log4j几乎是必选项。在nodejs中,类似的一个工具是log4js。该篇博客主要来学习如何使用log4js日志工具。安装log4js      命令行进入项目目录,执行"npm install log4js --s

乞力马扎罗的雪CYF的博客 4262

ADF4002分频器避坑指南:常见配置错误及解决方案

本文深入解析了ADF4002分频器在实战应用中的常见陷阱与解决方案。内容涵盖寄存器配置逻辑、硬件PCB布局要点、软件驱动时序细节及系统化调试方法,重点阐述了如何避免因配置错误导致芯片无法正常工作的问题,帮助工程师高效完成高精度频率合成系统设计。

weixin_29192141的博客 96

日志框架-2 Mybatis日志框架介绍

本文作为《日志框架》专题的第二篇, 介绍Mybatis关于日志的实现,会涉及源码介绍。Mybatis没有重复造轮子, 通过接入第三方日志组件实现日志功能, 且通过适配器使得日志实现随着接入的日志框架变化而变化;另外, 通过动态代理实现JDBC和Mybatis日志的合一, 方便用户使用Mybatis的日志。

shengyu 5515

【TC3xx芯片】TC3xx芯片PFlash的ECC校验问题补充

TC3xx芯片PFlash的ECC校验问题补充

qq_36056498的博客 1153

基于知识图谱的时空事件关联推理能力培养

随着信息技术的飞速发展,大量的时空事件数据被产生和收集,如交通流量数据、气象观测数据、社交媒体上的地理定位信息等。这些数据蕴含着丰富的知识和规律,但要从中提取有价值的信息并非易事。基于知识图谱的时空事件关联推理旨在通过构建知识图谱,将时空事件数据进行整合和关联,从而实现对事件之间潜在关系的挖掘和推理。本文的目的是系统地介绍基于知识图谱的时空事件关联推理能力的培养方法,包括核心概念、算法原理、数学模型、实际应用等方面。

操作系统内核探秘的博客 750

log4j--新的日志操作方法

1.1准备工作 一。Tomcat已正确配置与使用。 二。软件下载:log4j------http://www.apache.org/dist/jakarta/log4j/jakarta-log4j-1.2.8.zip  1.2. Log4j简介 在强调可重用组件开发的今天,除了自己从头到尾开发一个可重用的日志操作类外,Apache为我们提供了一个强有力的日志操作包-Log4j。 Log4j是Apa

zlfh的专栏 1125

Dify搭建AI测试用例生成器

1、获取产品需求文档2、解读、分析、挖掘需求点,提炼为测试点3、依据测试点,生成详细的测试用例4、输出测试用例1、打开 Dify 控制台,依次点击【工作室】-【ChatFlow】-【创建空白应用】。

十二测试录 1370

log4j--日志操作方法

  1.1准备工作  一、Tomcat已正确配置与使用。  二、软件下载:log4j------http://www.apache.org/dist/jakarta/log4j/jakarta-log4j-1.2.8.zip    1.2. Log4j简介  在强调可重用组件开发的今天,除了自己从头到尾开发一个可重用的日志操作类外,Apache为我们提供了一个强有力的日志操作包-Log4j。  L...

mrzhangtufu2的专栏 149

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

java中的日志操作方法---Log4J

  在应用程序中输出日志有有三个目的:(1)监视代码中变量的变化情况,把数据周期性地记录到文件中供其他应用进行统计分析工作。(2)跟踪代码运行进轨迹,作为日后审计的依据。(3)担当集成开发环境中的调试器,向文件或控制台打印代码的调试信息。  Apache能用日志包(Commons Logging Package)是Apache的一个开放源代码项目,它提供了一组通用的日志

LaoChai的专栏 1499

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

log4j java 使用方法_java中的日志操作方法—Log4J | 学步园

在应用程序中输出日志有有三个目的:(1)监视代码中变量的变化情况,把数据周期性地记录到文件中供其他应用进行统计分析工作。(2)跟踪代码运行进轨迹,作为日后审计的依据。(3)担当集成开发环境中的调试器,向文件或控制台打印代码的调试信息。Apache能用日志包(Commons Logging Package)是Apache的一个开放源代码项目,它提供了一组通用的日志接口,用户可以自由地选择实现日志接口...

weixin_39978101的博客 130

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

日志框架log4j升级至log4j2

大家好,我是默语,擅长全栈开发、运维和人工智能技术。在这篇博客中,我将详细介绍如何将日志框架从Log4j升级到Log4j2,确保在项目中实现更高效、更安全的日志管理。关键词:Log4j2升级、日志框架、Java日志、SLF4J、Log4j2配置。升级步骤具体操作删除Log4j核心包注释Log4j依赖,并排除第三方包引入的Log4j引入Log4j2和SLF4J桥接包添加Log4j2核心包和SLF4J与Log4j2的桥接包修改日志打印代码使用SLF4J的LoggerFactory进行日志打印。

沉淀所学,分享所思,让热爱与成长同行。商务记录AI实战经验,助力开发者快速成长。 热爱AI,希望做出有影响力的技术成果。 技术点亮生活,分享连接价值与机会。 专注AI落地实战,陪你走好技术每一步。 6万+

Log4j日志配置详解

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

yanweihpu的博客 2万+

常用日志框架Log4j,Logback,Log4j2性能比较与日志门面SLF4J简介

文章目录常用日志框架Log4jLogbackLog4j 2Log4j1/Logback/Log4j2性能比较日志门面SLF4J 常用日志框架 Log4j Log4j是Apache的一个Java的日志库,通过使用Log4j,我们可以控制日志信息输送的目的地(控制台、文件、数据库等);我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。 Logbac...

ThinkWon的博客 1万+

Mybatis日志配置(slf4j、log4j、log4j2)

本文详细的介绍了mybatis日志的相关配置,包括日志门面与日志实面!!!

一个很懒的人 1万+

Log4J日志配置与Java中Log4J的使用详解

文章目录Log4j简介Loggers介绍Appenders介绍Layouts介绍配置详解配置根Logger:配置日志信息输出目的地(appender):配置日志信息的输出格式(Layout):示例简单的Log4j配置文件:在Java中应用Log4j比较全面的Log4j的配置 Log4j简介   Log4j有三个主要的组件:Loggers(日志记录器),Appenders (日志的输出源)和Layo...

江湖人称小程的博客 4435

Log4j日志输出格式

Log4j日志输出格式 对于我才开始工作来说,输出日志唯一的目的就是打印代码的调试信息,当有项目运行什么问题或者错误可以通过查看日志快速的找到问题根源(这也是我来公司最开始就遇到的问题)。 先分享一个公司框架自带的通用日志文件(log4j.properties) log4j.rootLogger=DEBUG, stdout, filelog //目的地为stdot,输出地址为控制台 log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j

weixin_43573186的博客 6421
上一篇: session和cookie
下一篇: JSP显示在线人数代码
YuigAzul
博客等级 码龄21年 0粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值