log4j日志系统使用记录

Log4j 2.x在Android平台的应用指南 在讨论Log4j 2.x的主要更新时,我们首先要了解它与前版本Log4j 1.x和Log4j 2.x的差异。Log4j 1.x是较早期的版本,其设计在现代应用程序中显得有些过时,主要问题包括线程安全问题以及配置上的局限性。Log4j 2.x在继承了1.x版本优点的基础上,进行了大量改进和创新,其主要更新点如下:性能优化:Log4j 2.x对日志记录和事件处理进行了大量的性能优化,引入了异步日志记录功能,大幅提升了性能。配置灵活性。 阅读详情
情景:
         tomcat中配置log4j,适用于所有webapp
     
         webapp中配置log4j,适用于单个webapp

1、配置文件的放置
     自动加载(无需在log4j初始化中加载): 默认情况下log4j会在 source folder下寻找 log4j.xml,若没有则寻找 log4j.properties;
     手动加载(需要在log4j初始化中加载):若需要将 log4j.properties放置在其他目录下,则需要手动加载;在初始化时使用
     PropertyConfigurator.configure("log4j.properties"); 


2、配置文件说明:
  • log4j.properties 配置简单,但不支持复杂的过滤器filter;
  • log4j.xml 文件看起来复杂,但支持复杂过滤器filter和Log4j的新特性;(推荐)
log4j配置文件由下面三个重要部分构成:
  • 日志的优先级:(高------>低)OFF,FATAL,ERROR,WARN,INFO,DEBUG,log,ALL自定义级别,这样可以控制到应用程序中相应级别的日志信息开关。
          格式: log4j.rootLogger = [ level ] , appenderName, appenderName, …
          比如定义log4j.rootLogger =  INFO  那意味着DEBUG的信息将不能被输出
  • 日志信息输出目的地:一个输出源称之为appender,以下是 Log4j提供的几个appender:
       org.apache.log4j.ConsoleAppender(控制台),
       org.apache.log4j.FileAppender(文件),
       org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
       org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
       org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

  • 日志信息输出格式:
       org.apache.log4j.HTMLLayout(以HTML表格形式布局),
      org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
      org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),  
      org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)                    
  
                布局时的打印参数:
              %m    输出代码中指定的消息
        %p   输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL 
        %r   输出自应用启动到输出该log信息耗费的毫秒数 
        %c   输出所属的类目,通常就是所在类的全名 
        %t   输出产生该日志事件的线程名 
        %n   输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n” 
        %d   输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss
 , SSS},输出类似:2002年10月18日 22 : 10 : 28 , 921 

        %l   输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:
 10 ) 



3、使用
        3.1 java项目中需要这样使用
             public class TestLog4j {
                               public static void main(String[] args) {
                                  PropertyConfigurator.configure( " F:/Code/conf/log4j.properties " 
);
                                  Logger logger = Logger.getLogger(TestLog4j. class 
);
                                  logger.debug(
 " debug " 
);
                                  logger.error(
 " error " 
);
                     }
 

                }
        3.2 java web项目中使用

  • 将log4j.properties放在source目录下,然后编译的时候会在WEB-INF/classes/log4j.properties下
log4j.rootLogger = DEBUG, D , E
### 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{ABSOLUTE} %5p %c:%L - %m%n
### FILE DEBUG ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.Append = false
log4j.appender.E.Threshold = DEBUG
log4j.appender.D.File = ${webappHome}/WEB-INF/logs/info.log
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### FILE ERROR ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =${webappHome}/logs/error.log
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} [ %t\:%r ] - [ %p ] %m%n
log4j.appender.cmdstdout=org.apache.log4j.ConsoleAppender
log4j.appender.cmdstdout.layout=org.apache.log4j.PatternLayout
log4j.appender.cmdstdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [ %t\:%r ] - [ %p ] %m%n
### LIMIT CATEGORIES
log4j.logger.org.jbpm=INFO
log4j.logger.org.jbpm.graph=INFO


  • 初始化一个servlet:
public class Log4jInit extends HttpServlet {

  public   void init() {
    String prefix =  getServletContext().getRealPath("/");
    String file = getInitParameter("log4j-init-file");
    System.setProperty("webappHome", webappHome); 
    if(file != null) {
      PropertyConfigurator.configure(prefix+file);
    }
  }

  public
  void doGet(HttpServletRequest req, HttpServletResponse res) {
  }
}
  • 配置servlet
 <servlet>
    <servlet-name>log4j-init</servlet-name>
    <servlet-class>com.foo.Log4jInit</servlet-class>

    <init-param>
      <param-name>log4j-init-file</param-name>
      <param-value>WEB-INF/classes/log4j.lcf</param-value>
    </init-param>

    <load-on-startup>1</load-on-startup>
  </servlet>          
 



参考博客:
               1、LOG4J.PROPERTIES配置详解   http://www.blogjava.net/alexprefect/articles/372959.html ;
               2、log4j的配置文件介绍    http://lengbingteng-163-com.iteye.com/blog/1114906





【车辆仿真】从0开始建立dSPACE RT Simulink工程:CAN通信(RTICANMM方法) 【工程环境信息】:本文基于链接文章搭建SCALEXIO Rack RTPC总线节点,用于与AutoBox通信硬件:上位机:惠普台式PC(Windows 11专业版)下位机(实时机):AutoBox (DS1006)板卡:DS6342软件:本文所使用的DBC链接提示:以下是本篇文章正文内容,下面案例可供参考!!!的部分一定记得配置,其他的按需配置RTICANMM的灵活度非常高,尽可能参考Help文档,理解相应的配置内容官方有RTICANMM的样例工程,在下方路径。 阅读详情

相关推荐

[后端设计]innovus命令editPin详解?

先放命令,有空慢慢写。

m0_61003348的博客 5725

Log4j2进阶使用(Pattern Layout详细设置)

1.进阶说明 通过配置Layout打印格式化的日志, Log4j2支持很多的Layouts: CSV GELF HTML JSON Pattern Serialized Syslog XML YAML 本文仅介绍Pattern Layouts的详细使用。 本文基于Log4j2基本使用入门。 请先参考上面的基本使用入门。 2.Pattern Layouts Pattern Layouts是一个灵活的布局, 是最常用的日志格式配置。 该类的目标是格式化一个日志事件并返回结果, 结果的格式取决于转换模式。 转换模

BigManing的博客 5712

KEGG两类报错--①No gene can be mapped--②URL ‘https://rest.kegg.jp/link/hsa/pathway‘…

版本问题,重新安装一下clusterProfiler包。网络问题,可以等待之后再试一下(试过不是)(以上可以排除基因不存在的错误因素)

weixin_57699783的博客 2万+

log4j根据时间删除文件和按照大小归档配置

【代码】log4j根据时间删除文件和按照大小归档配置。

曾大强博客 560

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的生活垃圾检测与分类系统(Python+PySide6界面+训练代码)

随着城市化进程的加速和人口增长,生活垃圾管理已成为现代城市面临的重要挑战。传统的垃圾处理方法效率低下且成本高昂,急需智能化解决方案。本文详细介绍了基于YOLO系列算法(特别是YOLOv8)的智能生活垃圾检测与分类系统,该系统能够实时识别和分类多种生活垃圾,为智能垃圾处理和回收提供技术支持。系统包含完整的数据集构建、模型训练、评估和可视化界面,并提供了完整的实现代码。

YOLO 117

高通开发系列 - System之FOTA/DFOTA包制作和升级

高通开发系列 - System之FOTA/DFOTA包制作和升级

fulinux的博客 4222

java log4j日志详解

日志:是Java中程序处理运行时产生的日志数据信息 作用:①记录运行信息,方便调试;②记录错误信息,方便排查错误;③存储运行记录,方便后期的数据分析; log4j的特性: 1 . 线程安全 ; 2 . log4j是经过优化速度的 ; 3 . log4j是基于一个名为记录器的层次结构 ; 4 .log4j的...

不知有鱼的博客 3664

FreeRTOS全攻略:从入门到精通

本文聚焦 FreeRTOS,从基础概念出发,阐述其开源、轻量级等优势。着重介绍 FreeRTOS 入门知识,涵盖内存管理、任务操作、同步互斥机制等核心内容。其中,空闲任务与钩子函数保障系统基础运行与功能扩展;队列、信号量、互斥锁和事件组等机制,分别从数据传递、资源访问控制、优先级问题解决及多任务同步等方面,为开发者提供高效的任务间协作与资源管理方案,助力开发者掌握 FreeRTOS 核心技术,为嵌入式项目开发筑牢基础。

邓邓子的博客 6355

Log4j使用方式详解

Logging-log4j Wiki Login Log4jXmlFormat FrontPage RecentChanges FindPage HelpContents Log4jXmlFormat Immutable PageInfoAttachments            More Actions:Raw Text  Print View

奔跑的饭盒 3万+

RK3568平台开发系列讲解(项目篇)手写数字识别

📢 本篇章带大家基于飞桨(PaddlePaddle),完成一个简单的手写数字识别任务。

内核笔记 1182

OpenCASCADE:Direct3D CSharp 示例

OpenCASCADE:Direct3D CSharp 示例OpenCASCADE:Direct3D CSharp 示例 OpenCASCADE:Direct3D CSharp 示例 此示例演示了如何在使用CSharp和Windows Presentation Foundation (WPF)编写的.Net应用程序中使用 OCCT 和 DirectX 库。 .Net、OCCT (C++) 和 DirectX 级别之间的连接由用 C++/CLI 编写的代理库OCCProxy和D3DProxy提供。代理库OCC

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1824

log4j数据库日志插入异常解决方案。

2015-11-18 08:56:08,486 ERROR Unable to write to database [jdbcManager{ description=databaseAppender, bufferSize=0, connectionSource=factory{ public static java.sql.Connection haige.sat.util.Connectio

qq_22239651的博客 1万+

YOLOv11改进策略【Neck】| GFPN 超越BiFPN 通过跳层连接和跨尺度连接改进v11颈部网络

本文记录的是利用颈部结构优化YOLOv11的目标检测网络模型。利用改进后的颈部网络,通过跳层连接,避免了在进行反向传播时的梯度消失问题,并且引入跨尺度连接,可以实现不同级别和层次的特征充分融合,获取足够的高层语义信息和低层空间信息交换,从而在大规模变化场景下提高检测性能。GIRAFFEDET: A HEAVY-NECK PARADIGM FOR OBJECT DETECTION-GFPN包含了上述的跳层连接(dense-link和log2nlog _{2} nlog2​n-link)以及跨尺度连接(Quee

Limiiiing的博客 3004

Log4j日志系统,将日志信息记录到数据库中。

使用的Log4j的jar包: log4j-1.2.17.jar 数据库环境: Mysql数据库 我的Java项目目录结构如下图图一所示: 图一 ...

dear_Alice_moon的专栏 1578

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

log4j使用详解--创建自己的日志系统

Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输出地;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。那么是不是这样,我们就可以完全使用log4j,而不需要扩展定制了呢?1、基本介绍Log4j  Log4j是A

SAIN 6496

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

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

log4j(slf4j)使用资源集合

1、log4j和slf4j的介绍和区别slf4j及优势:是一个用户日志系统的facade,它允许用户在部署最终应用时方便的变更其日志系统,真正使用的还是比如log4j或commons-logging等日志系统。资源地址:为什么要使用SLF4J而不是Log4J、slf4j介绍、log4j和slf4j的介绍和区别 2、log4j使用详解可以说分为3大部分:记录器、输出源、模版与格式1)、loggers:

javaloveiphone的专栏 753

Java日志组件 commons-logging和log4j介绍

一、日志系统介绍 日志的重要性是随着系统的膨胀而显现的,在一个庞大的系统中查错没有各种日志信息是寸步难行的。所以在系统加入日志是必须的。 最原始的日志方式,就是在程序的适当地方添加System.out.println()方法,但是带来的问题是,系统稳定后,日志太大,如果要减少日志量,就需要重新修改程序,虽然只是注释掉System.out.println()方法。但是万一系统再次出错,又

Kawaboger的专栏 1027

浅谈Log4j的扩展(第一篇)

    1       基本介绍Log4j   Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输出地;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。   log4j的好处在于: 1) 通过修改配置文...

iteye_4162的博客 270

java自带日志系统介绍(JUL)以及和Log4j 2、Logback、SLF4J不同日志工具的对比

java自带日志系统介绍(JUL)以及和Log4j 2、Logback、SLF4J不同日志工具的对比

爱的叹息的专栏 1321

log4j2配置及使用

作为一个实用主义者,我喜欢在理解基本原理后快速的搭建系统,当系统运行起的时候有那种愉悦和兴奋。最近在完善公司框架,从最基本的日志系统开始。 java日志系统比较流行的是log4j,slf4j和logback,本来打算用logback的,已经把相关下载下来,结果突然发现log4j2,也就是log4j的升级版本。bilibili,种种云log4j2的优点。 ok,着手搭建,我用的是mav

piaomiao2080的专栏 2880

log4j日志系统,简单易懂

log4j 日志系统 日志系统:统计系统/软件的操作数据/异常信息 软件运行的日记 写给程序员看的 log4j是框架中使用最频繁的日志系统 第一步导入jar 第二步配置log4j的属性集文件(.propertes) 位置必须在src下,名字也必须是log4j.propertes 文件内容一般都是配置好的,直接粘过去就行了 log4j.rootLogger = DEBUG,stdout,D,E log4j.appender.stdout = org.apache.log4j.ConsoleAppender

qq_41456369的博客 450

浅谈Log4j的扩展 (一)

转自:http://blog.sina.com.cn/s/blog_5f53615f0100sfo1.html   浅谈Log4j的扩展 (一)     #1楼 摘要:Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输出地;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人

koutatu的专栏 1326

commons-logging日志系统

http://www.cnblogs.com/machine/archive/2012/12/17/2822227.html 1 日志系统介绍 1 日志系统介绍 日志的重要性是随着系统的膨胀而显现的,在一个庞大的系统中查错没有各种日志信息 是寸步难行的。所以在系统加入日志是必须的。最原始的日志方式,就是在程序的适当地方添加System.out.printl

daditao的专栏 736

log4j 和slf4j的比较

log4j 大家都知道,就不在多说了,重点说说slf4j; 简单日记门面(simple logging Facade for java)SLF4J是为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希 望的loging APIs实现 准确的说,slf4j并不是一种具体的日志系统,而是一个用户日志系统的 facade,允许用户在部署最终应用

lyhmyway的专栏 786

Java日志系统(上)

Java日志系统(上) 最近一段时间,公司的应用架构在向微服务架构转型,基本框架是Dubbo + zookeeper。在转型过程种,笔者从网上、书本上,对日志系统有了一些初步了解。找了个时间,这里把学习到的知识做个总结。本文部分内容节选自网上各路大神的博客、《分布式服务架构——原理、设计与实践》第4章。 1. 概述 日志是程序设计中很重要的一部分,它提供了丰富的程序运行时信息,例如:程序运行时的...

weixin_33827965的博客 108

SLF4J简介与使用(整合log4j)

SLF4J简介与使用(整合log4j) 一、概念 SLF4J的全称是Simple Logging Facade for Java,即简单日志门面。SLF4J并不是具体的日志框架,而是作为一个简单门面服务于各类日志框架,如java.util.logging, logback和log4j。 SLF4J提供了统一的记录日志的接口,对不同日志系统的具体实现进行了抽象化,只要按照其提供的方法记录即可,最终日...

KISS 715
上一篇: java web服务之RESTful需要知道的annotation
下一篇: 编程之递归思想理解记录
SpaceXFalcon9
博客等级 码龄16年 5粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值