Java Web实践专题——Log4j

log4j 在 Java Web 项目中的应用要点 本文旨在为Java Web开发者提供全面的log4j应用指南,涵盖从基础配置到高级优化的各个方面。我们将重点讨论log4j 2.x版本,这是目前Java生态中最主流的日志框架之一。文章从基础概念入手,逐步深入到高级应用场景,最后探讨性能优化和安全实践。每个部分都配有实际代码示例和配置说明。Logger: 日志记录器,应用程序通过Logger实例记录日志Appender: 日志输出目的地,如控制台、文件、数据库等Layout: 日志格式化方式,决定日志输出的样式Filter。 阅读详情
 
           在开发应用的过程中,日志可以用于调试程序、跟踪程序的运行轨迹。在程序运行过程中,可以记录程序的运行状态,并用于审计。
日志有多种实现,Log4j是一种比较流行的实现。本文介绍Log4j日志的使用。
Log4j日志的使用包括如下过程:
l        获取日志的实现;
l        编写配置文件;
l        初始化;
l        使用。
下面分别进行介绍。
1、获取日志实现
日志实现通常位于压缩包中,压缩包的名字log4j-1.2.15.jar,存放的位置:WEB-INF/lib下面。最新版本可以从官方网站下载。
2、配置
要使用Log4j需要先进行配置,日志的配置需要使用配置文件,可以采用属性文件也可以采用XML文件,本文介绍的实例采用属性文件。属性文件的位置:WEB-INF下面,名字为:log4j.properties。
日志文件的主要内容:
1)设置跟记录器
设置根记录器的基本格式如下:
log4j.rootLogger=debug,R
等号后面包括两个信息:日志级别和日志目的。
日志级别包括:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL
日志目的可以是任意的名字,可以有多个。
2)设置日志的类型
日志的类型包括:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
rg.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
设置日志的类型可以使用下面的代码:
log4j.appender.R=org.apache.log4j.RollingFileAppender
3)设置日志文件的相关属性
如果日志的类型是文件,需要指出文件的位置,通过如下方式指出:
log4j.appender.R.File=${catalina.home}/logs/my.log
日志文件的大小通过如下方式制定:
log4j.appender.R.MaxFileSize=10MB
日志文件重复数
log4j.appender.R.MaxBackupIndex=10
4)日志文件的输出方式
常用日志的输出方式如下:
org.apache.log4j.HTMLLayout
org.apache.log4j.PatternLayout
org.apache.log4j.SimpleLayout
org.apache.log4j.TTCCLayout
下面的代码用于设置文件输出方式:
log4j.appender.R.layout=org.apache.log4j.PatternLayout
5)日志文件的输出格式
    如果使用PatternLayout,可以使用下面的格式符号。
%r        自程序开始后消耗的毫秒数
%t        表示日志记录请求生成的线程
%p        表示日志语句的优先级别
%r        与日志请求相关的类别名称
%c        日志信息所在的类
%m%n      表示日志信息的内容
例如:
log4j.appender.R.layout.ConversionPattern=%p %t %c -%m%n
下面是一个完整的配置文件的内容(#表示注释):
# debug表示日志的级别,R表示其中一个日志,名字可以随便取
log4j.rootLogger=debug, R  
 
#日志的类型
log4j.appender.R=org.apache.log4j.RollingFileAppender
 
#日志的文件
log4j.appender.R.File=${catalina.home}/logs/my.log
 
#日志文件的大小
log4j.appender.R.MaxFileSize=10MB
 
#日志文件的
log4j.appender.R.MaxBackupIndex=10
 
#输出方式
log4j.appender.R.layout=org.apache.log4j.PatternLayout
 
#具体输出方式
log4j.appender.R.layout.ConversionPattern=%p %t %c -%m%n
3、初始化
可以使用多种方式进行初始化,过程基本相同。下面是采用Servlet进行初始化的例子,参考代码如下:
Servlet源文件:
package bookstore.servlet;
 
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
 
import org.apache.log4j.PropertyConfigurator;
 
public class Log4JServlet extends HttpServlet{
 
    public void init() throws ServletException{
         String path = getServletContext().getRealPath("/");
         String filename = path+"/WEB-INF/log4j.properties";
         PropertyConfigurator.configure(filename);
    }
}
    为了让Web应用启动的时候加载该Servlet,需要在web.xml中配置<load-on-startup>元素。参考代码如下:
web.xml中的声明:
<?xml version="1.0" encoding="ISO-8859-1"?>
 
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
 
    <servlet>
       <servlet-name>log4j</servlet-name>
       <servlet-class>bookstore.servlet.Log4JServlet</servlet-class>
       <load-on-startup>1</load-on-startup>
    </servlet>
 
    <servlet-mapping>
       <servlet-name>log4j</servlet-name>
       <url-pattern>/log4j</url-pattern>
    </servlet-mapping>
</web-app>
4、调用
日志配置完并初始化之后,就可以使用了。使用过程主要就是获取日志器,然后调用相应的方法即可。
获取日志器的方法如下:
Logger Logger.getLogger(String str)
参数相当于指出日志的类别,返回值是Logger对象。
Logger对象用于输出日志信息的方法如下:
fatal(String info)
error(String info)
warn(String info)
info(String info)
debug(String info)
注意:在使用的时候需要导入org.apache.log4j.Logger。
下面是一个使用Log4j的例子:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="org.apache.log4j.Logger"%>
<%
   Logger log = Logger.getLogger("testLogger");
 
   log.debug("debug message"); 
   log.error("error message");
   log.warn("warn message");
   log.info("info message");
   log.fatal("fatal message");
%>
    运行结果如下:(格式为%p %t %c -%m%n):
DEBUG http-8080-1 testLogger - debug message
ERROR http-8080-1 testLogger - error message
WARN http-8080-1 testLogger - warn message
INFO http-8080-1 testLogger - info message
FATAL http-8080-1 testLogger - fatal message
 
5、扩展知识
正常情况下日志的使用不是在JSP文件中,而是在业务层、或者控制层,并且使用日志的文件会有很多,所以通常在基类中创建Logger对象,然后在各个子类中直接使用各个输出信息的方法即可。
 
Web项目中Log4j日志集成实战案例 Log4j作为Apache基金会开源的日志记录工具,自诞生以来便成为Java应用中最广泛使用的日志框架之一。其设计目标是高效、灵活、可配置地记录应用程序运行过程中的关键信息。本章将系统阐述Log4j的基本架构与三大核心组件——Logger、Appender和Layout的工作机制,深入剖析其线程安全、异步日志支持以及性能优化策略。根Logger是整个日志系统的起点,所有未明确指定Logger名称的记录请求都将继承其配置。其基本语法如下:# 设置根Logger级别和关联的Appender。 阅读详情

相关推荐

银河麒麟V10离线安装VLC播放器:依赖处理与3.0.9.2版本实操指南

在国产化操作系统日益普及的背景下,软件安装方式成为政企内网用户关注的重点。离线安装作为一种不依赖公网源的部署手段,常用于解决内网环境下的软件获取问题。其核心在于理解Linux包管理机制,如dpkg与apt对依赖关系的处理逻辑。掌握这一原理,不仅能应对多媒体软件的部署,也能提升系统维护效率。VLC作为跨平台多媒体播放器,凭借强大的解码能力与协议支持,广泛应用于本地视频播放、RTSP拉流及监控大屏等场景。本文从离线安装的通用概念出发,结合银河麒麟V10桌面版的实际环境,详细梳理了VLC 3.0.9.2离线包的获

weixin_32247165的博客 375

Java常用日志框架--log4j

B站log4j视频的笔记

trh_csdn的博客 4951

一个固定翼飞机仿真程序带你系统性上手如何实现配平(工具箱+脚本)

老规矩,该博客所用的模型和脚本已上传至百度网盘,名字为“固定翼配平训练例子”,自己自取。

zouxu634866的博客 2573

Log4j详细使用教程

日志是应用软件中不可缺少的部分,Apache的开源项目Log4j是一个功能强大的日志组件,提供方便的日志记录。在apache网站:jakarta.apache.org/log4j 可以免费下载到Log4j最新版本的软件包。  一、入门实例   1.新建一个JAva工程,导入包log4j-1.2.17.jar,整个工程最终目录如下   2、src同级创建并设置log4j.p

X-rapido的专栏 1002

S32K344 Flash Driver实战:手把手教你实现任意字节写入与扇区解锁(含C40_Ip避坑指南)

本文深入解析S32K344微控制器的Flash驱动开发,重点解决C40_Ip驱动库的8字节对齐限制和扇区保护锁问题。通过实战案例和代码示例,详细介绍了如何实现任意字节写入、扇区解锁及性能优化策略,为Bootloader和OTA升级等应用提供可靠解决方案。

weixin_33713707的博客 432

生成式引擎优化(GEO)- 搜索引擎优化

生成式引擎优化(GEO)是针对AI内容生成平台(如ChatGPT)的新型优化策略,旨在提升品牌内容在AI生成答案中的引用率,与传统SEO存在显著差异。GEO通过优化内容权威性、结构化和语义关联,适应AI的RAG技术架构,采用3C原则(可爬性、网络共识、反馈校正)提升内容可见性。其核心区别在于目标(引用率vs排名)、技术(语义优化vs关键词)及算法透明度(封闭vs开放)。适用场景包括商业决策、行业权威建设及公共知识服务,帮助品牌在AI时代占据信息主导权。

解锁AI流量新红利!🚀 GEO优化(生成引擎优化)助您掌控AI搜索,让AI成为您的品牌最佳代言人! 1404

【Java日志系列】Log4j日志框架

日志是软件开发中不可或缺的一部分,它能够帮助开发者追踪程序的运行状态,诊断问题,以及监控系统性能。Apache Log4j作为一款成熟的日志框架,因其高度的灵活性和可配置性,在Java开发领域得到了广泛的应用。本文将介绍Log4j的基本概念、组成部分、如何配置及使用。Log4j是Apache的一个开源项目,通过使用Log4j,我们开源控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;

记录了个人在学习生活中的所思所想,在反思自己的同时希望也能够帮到你 3216

C#工业通信完整项目实战:从协议解析到数据库存储,打造工业级全链路数据闭环(完整可复用源码)

工业自动化的核心诉求是「数据闭环」:从工业设备采集真实生产数据 → 解析校验获得有效数据 → 持久化存储到数据库形成生产台账 → 数据分析/报表展示/异常预警,形成采集→解析→处理→存储→应用的全链路数据流转,这也是工业上位机开发的终极落地形态,区别于单纯的「数据采集」demo。本次实战是一套工业级完整投产级项目,基于C# WinForm + .NET Framework 4.8(工业标配)✅双通信链路完美适配:同时封装TCP网口 + 串口(RS232/485)

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1038

【Java】Log4j日志

log4j日志

少年你真的要止步于此嘛。 2818

TIA西门子博途V19安装教程及注意事项

TIA西门子博途V19安装教程及注意事项

Robot_PLC_HMI_Automation 1万+

JavaFX 表视图

我们可以使用来自 JavaFX API 的 TableView,TableColumn 和 TableCell 类以表格形式表示数据。通过实现数据模型和应用单元工厂来填充表中的数据。表类可以按列排序数据,并在必要时调整列大小。

2012年开始工作,全栈开发老兵,目前已是一个老师,分享这么多年的心得体会 405

Java日志 - log4j

Log4j是Apache下的一款开源的日志框架,通过在项目中使用 Log4J,我们可以控制日志信息输出到控 制台、文件、甚至是数据库中。我们可以控制每一条日志的输出格式,通过定义日志的输出级别,可以 更灵活的控制日志的输出过程。方便项目的调试。3、日志的级别 注:一般只使用4个级别,优先级从高到低为 ERROR > WARN > INFO > DEBUG1、Appenders Appender 用来指定日志输出到哪个地方,可以同时指定日志的输出目的地。Log4j 常用的输出目的地 有以下几种 2、Layou

java123456111的博客 2460

Python对象的基本组成和内存示意图及引用的本质

在Python中,变量也称为:对象的引用(reference)。变量存储的就是对象的地址。变量不需要显式声明类型。根据变量引用的对象,Python解释器自动确定数据类型。一个内存块,拥有特定的值,支持特定类型的相关操作。变量位于:栈内存(压栈出栈等细节,后续再介绍)。⚠️Python是动态类型语言。变量通过地址引用了“对象”。

Calor13的博客 557

java web log4j使用_Web项目中使用Log4j实例

Web项目中使用Log4j实例时间:2017-05-12来源:华清远见JAVA学院Web项目中如何使用Log4j呢?做一个J2EE应用,在J2EE应用使用Log4j,必须先在启动服务时加载Log4j的配置文件进行初始化,可以在web.xml中进行。1、web应用的log4j使用基本上都采用:新建一个servlet,这个servlet在init函数中为log4j执行配置。一般就是读入配置文...

weixin_29416781的博客 601

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

java的log4j_Java log4j详细教程

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

weixin_28862113的博客 2972

老版QQ原生表情gif动态

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

[java][log4j]最详细的Log4j使用教程

其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。当然除了上面的配置方法,还有其它,比如做一个J2EE应用,在J2EE应用使用Log4j,必须先在启动服务时加载Log4j的配置文件进行初始化,可以在web.xml中进行。配置文件的大致内容:log4j可以指定输出的log级别的最低等级,以及log的输出配置格式,每个log可以指定多个输出方式。

一名不太专业的程序员 4301

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Log4j在Java Web开发中的使用笔记

Log4j使用比较简单(虽然我折腾了半天)。这篇文章写的不错,是中文的,还有这篇E文的,详细的介绍了Web开发中如何使用Log4j。主要总结一下Web中使用Log4j。 概述:要在程序中输出调试信息,就要先获得Logger。要获得Logger,就要先配置它。 总是可以通过Logger.getRootLogger()来获得根logger,但基本不这么做。(专家说,我也不知道为什么)

maxway的专栏 3713

java web配置log4j_深入浅析java web log4j 配置及在web项目中配置Log4j的技巧

以下内容转自:http://www.jb51.net/article/74477.htm在上篇文章给大家介绍了Java log4j详细教程,本文给大家介绍javaweb log4j配置及web项目中配置log4j的技巧。具体详情请看下文吧。一、java web项目使用log4j1.在web.xml文件中添加2.添加log4j.properties文件3.使用log4j例如在UserService...

weixin_42502040的博客 337

Log4j2与Slf4j的最佳实践

前言 日志对于项目的重要性不言而喻,现在市面上的日志框架多种多样:Log4j、Log4j2、Slf4j、JDKLog、Logback等等,如果没有真正深入了解过,可能会被搞得眼花缭乱。本文将介绍目前Java项目中最常见的Log4j2 + Slf4j的使用组合,这也是我自己项目中目前使用的。 另外,由于现在项目基本都是Servlet 3.0及以上版本,因此本文针对Servlet 3.0及更高的版...

程序员囧辉 2万+

log4j2 配置 基于JAVA 以Web为例

log4j2性能 log4j2、log4j、logback性能比较 log4j2在SrpingMVC中的应用

journey in java 5173

web项目log4j日志配置和使用

在web.xml中配置Log4j的监听和文件映射与相关设置 web.xml代码 log4jConfigLocation classpath:log4j.properties log4jRefreshInterval 60000 org.spr

小耿的博客 1万+

log4j在web应用中的配置

Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。 1. 配置文件 Log4J配置文件的基本格式如下: #配置根Logger log4j.rootLogger = [ level ] , appenderName , appenderName1 , … #配置日志信息输出目的地Appender及Appender选项 log4j.

Allen_G的博客 1828

java web 配置log4j2,Log4j2在WEB项目中配置

最近决定在新WEB项目中使用新的日志系统Log4j2。官方介绍和学习文档网址为http://logging.apache.org/log4j/2.x/首先在WEB项目中引入以下几个jar包:① log4j-api-2.4.1.jar②log4j-core-2.4.1.jar③log4j-web-2.4.1.jar按照以往的思路,简单修改web.xml中的Log配置如下:log4jConfigL...

weixin_29767773的博客 1618
上一篇: Java Web实践专题——应用分层
下一篇: Java Web实践专题——基本MVC实例
老李-大连
博客等级 码龄20年 3206粉丝 308原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值