log4j相关知识
-
log4jlog4j 一个日志框架 apache 基金会下的 网址 https://logging.apache.org/log4j/2.x/ maven安装 网址 https://search.maven.org/artifact/org.apache.logging.log4j/log4j/2.11.2/pom 复制以下依赖 <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j</artifactId> <version>2.11.2</version> <type>pom</type> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.10.0</ve
-
最详细的Log4j使用教程日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录。在apache网站:jakarta.apache.org/log4j 可以免费下载到Log4j最新版本的软件包。一、入门实例1.新建一个JAva工程,导入包log4j-1.2.17.jar,整个工程最终目录如下2、src同级创建并设置log4j.properties ### 设置###log4j.rootLogger = debug,stdout,D,E### 输出信息到控制抬 ###log4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target = System.outlog4j.appender.stdout.layout = org.apache.log4j.P
-
log4j升级为log4j2(无需改动代码)操作:1.删掉项目中存在的Log4j1.x的jar包,添加log4j2的jar包;2.添加log4j和log4j2的连接包log4j-1.2-api-2.x.x.jar,注意不是log4j-api-2.x.x.jar;3.添加log4j2的配置文件log4j2.xml即可,log4j升级log4j2升级成功.扩展:如果原项目中用的是slf4j打印日志,那么导包的时候需要导入:slf4j-api-1.x.x.jarslf4j-log4j12-1.x.x.jar
-
日志输出Log4j配置和使用 在开发过程中,日志信息是必不可少的,一般我们会选择在控制台查看程序输出的日志信息,而常用到的日志工具是Log4j,下面就其在开发中的配置来了解下。 一、了解日志输出工具Log4j Log4j是帮助开发人员进行日志输出管理的API类库,它最重要的特点就可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地以及日志信息的输出格式。Log4j除了可以记录程序运行日志信息外还有一重要的功能就是用来显示调试信息,如System.out.println语句输出调试信息。 二、Log4j开发准备 在开发使用Log4j前,需要准备一些必须的东西,如jar包和配置文件。Log4j的jar包可从官网上下载,通过添加外部jar包的形式导入程序,一些常用jar开发包链接: &
log4j相关课程
log4j相关教程
- 2. log4j 日志框架 企业级的项目都会标配日志子系统。日志系统可以记录项目运行过程的所有信息,通过这些信息可以很方便帮助开发人员找到项目运行过程的问题。日志系统也可以记载用户的使用记录,这些信息可以帮助开发者分类、归纳用户的使用入口,更好的维护系统的安全性。除此之外,日志信息还有更多其它用途。众多流行、优秀的日志框架中,本课程主推 log4j。log4j 日志系统有两个版本,使用时有很大差异性。基于 Spring 5.X 版本的项目中建议使用 log4j 2 版本。
- 1. 前言 本章节将和大家一起聊聊在 Spring MVC 项目中如何添加日志系统。通过本课程,你将了解到:添加 log4j 日志子系统的流程。这个是本章节的重点;log4j 日志系统的相关配置。
- 3. 小结 本章节和大家一起聊了聊在 Spring MVC 项目如何使用 log4j 2 日志系统。log4j 是一个独立的日志系统。可以在需要提供日志的项目中以模块化的方式轻松使用。log4j 有很多可配置项,大家可以参考官方文档。对于本课程的配置而言,已经足够常规要求。
- 2.1 添加日志框架 本小节主要介绍在 Spring MVC 项目中如何集成 log4j 2 日志系统。打开项目的 pom.xml 文件,添加 log4j 的依赖包;<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.10.0</version></dependency><dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.10.0</version></dependency><dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-web</artifactId> <version>2.10.0</version></dependency>Tips: 这里有 3 个依赖包,log4j-web 是针对于 WEB 应用程序的依赖包。新建名为 log4j2.xml 的配置文件;Tips: log4j2 不再支持 properties 格式的文件,只支持 xml,json 或是 yaml,不指定位置的情况下默认在 src/main/resources 下查找。提供如下最基础的配置内容:<?xml version="1.0" encoding="UTF-8"?><Configuration status="WARN"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{yyyy/MM/dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" /> </Console> <RollingRandomAccessFile name="smlog" fileName="sm.log" filePattern="$${date:yyyy-MM}/sm-%d{yyyy-MM-dd}-%i.log.gz"> <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" /> <Policies> <TimeBasedTriggeringPolicy /> <SizeBasedTriggeringPolicy size="10 MB" /> </Policies> <DefaultRolloverStrategy max="20" /> </RollingRandomAccessFile> </Appenders> <Loggers> <Logger name="org.springframework" level="DEBUG" /> <Root level="info"> <AppenderRef ref="Console" /> <AppenderRef ref="smlog" /> </Root> </Loggers></Configuration>log4j2 配置内容简要说明:Appender: 信息输出位置,可以有多个输出口。 SYSTEM_OUT 的目标是 Console 。表示把日志内容输出到控制台上。Root Logger 的级别是 info。所有 info 及以上级别的日志才会记录;Tips: 日志级别分别有 TRACE、 DEBUG 、NFO 、WARN 、ERROR 、 FATAL 这几种,日志级别从左向右依次增加。日志信息的输出由当前日志级别决定,只有比当前级别高的信息才能输出。RollingRandomAccessFile: 表示以文件方式记录。可以设置日志文件的文件名以及格式,一般会加上时间戳;Tips: 本文侧重于讲解在 Spring MVC 项目中如何使用 log4j 日志系统。log4j 其它的配置信息大家可以查阅官方文档: 。如果希望日志信息既输出到控制台,又能输出到文件中,务必使用 AppenderRef 标签引用控制台配置名称和文件配置名称。<Root level="info"> <AppenderRef ref="Console" /> <AppenderRef ref="smlog" /></Root>log4j2 的配置文件开发者可以根据需要存放在其它位置,但需要在 web.xml 文件中配置 log4j 提供的监听器。<context-param> <param-name>log4jConfiguration</param-name> <param-value>classpath:log4j2.xml</param-value></context-param><listener> <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class></listener>Tips: 最佳方案是把 log4j 的 log4j2.xml 配置文件放在默认位置,避开上面的配置。Servlet2.5 以上,可以不用配置监听器。使用测试。使用很简单,在你需要使用日志的地方,创建一个日志对象。public class Test { static Logger logger = LogManager.getLogger(Test.class); public static void main(String[] args) { logger.info("info","messgae"); }}运行上面代码,除了在控制台上输出信息外,且还会把内容写入到日志文件中。日志对象的 i 常用方法如下:debug():输出 debug 级别信息;error():输出 error 级别的信息;fatal():输出 fatal 级别的信息;info():输出 info 级别的信息;trace():输出 trace 级别的信息;warn():输出 warn 级别的信息。以上几个方法除了语义上的区别,使用起来没有本质的区别。通过语义上的差异性,log4j 可以控制信息的输出级别。
- 1. 让我们的类支持 Lambda 表达式 日志记录工具是我们平时用的最多的一个工具,比如 SLF4J、Log4j 等,可以帮助我们快速查看程序的信息、定位问题,也在一定程度上增加了系统开销,通常我们在写 debug 日志的时候为了降低会进行日志级别的判定 (在本例中我们使用的是 Log4j 2)public class DemoLogger { public static void main(String[] args) { Logger logger = LogManager.getLogger(DemoLogger.class); if(logger.isDebugEnabled()){ logger.debug("这是一个debug日志"); } }}想必上面的代码应该都非常熟悉,在 Log4j 2 中提供了 Lambda 表达式实现的日志记录方法,对于上述代码我们可以简化为:public class DemoLogger { public static void main(String[] args) { Logger logger = LogManager.getLogger(DemoLogger.class); logger.debug(()->"这是一个debug日志"); }}通过查看源代码我们可以发现 Logger 对象提供了一个 Supplier 的 debug 方法:@Overridepublic void debug(final Supplier<?> msgSupplier) { logIfEnabled(FQCN, Level.DEBUG, null, msgSupplier, (Throwable) null);}@Overridepublic void logIfEnabled(final String fqcn, final Level level, final Marker marker, final Supplier<?> msgSupplier, final Throwable t) { if (isEnabled(level, marker, msgSupplier, t)) { logMessage(fqcn, level, marker, msgSupplier, t); }}在这个方法中,它通过 logIfEnabled 判断是否为 debug 进而决定是否调用 supplier 对象的内容。 这给了我们一个启发,那就是:我们可以运用 java.util.funciton 中的接口来重新封装我们原有的类来支持 Lambda 表达式,进而简化我们的代码。
- 4. 小结 Spring Boot 项目可以使用简单的几个配置,实现日志的打印,并设置相应的级别、日志文件等信息。如果想要对日志的方方面面进行设定,也可以快速地集成常见的日志系统如 logback 、log4j 。日志系统对生产环境项目来说是不可或缺的,大家可以选择使用 Spring Boot 集成一种自己用起来顺手的日志系统。
log4j相关搜索
-
label
labelfor
label标签
lambda
lambda表达式
lamda
lang
last
latin
latin1
layers
layui
leave
left
leftarrow
legend
length
lengths
length函数
less