赞
踩
目录
1、访问Log4j – 下载 Apache Log4j™ 2官网,下载log4j 2压缩文件
2、将压缩包解压后,将log4j-api-2.23.1.jar和log4j-core-2.23.1.jar两个jar包导入项目中。具体操作如下。
4、使用日志框架示例(在这就只展示一种,需要了解更多的可以私信我):
程序在开发完成后会被不同系统环境的用户使用,在使用过程中可能会出现各类异常,程序出现的技术错误信息是提供给开发人员定位问题并解决问题。将这些信息直接展示给用户看是没有任何意义的。这时,可以将用户执行的所有操作和程序运行的过程记录到日志中,开发人员可以通过分析日志内容,快速定位并诊断问题。
日志是记录系统或应用程序在运行过程中所发生事件或行为的详细信息的文件。它通常包括时间戳、事件类型、事件描述等信息,以便在需要时进行故障排查、性能优化、安全审计等工作。日志可以帮助开发人员和系统管理员诊断应用程序问题,了解系统运行情况,以及存档和监控事件。在java中一般都是使用log4j 2的日志框架
Apache Log4j是基于Java的日志记录工具,现在是Apache软件基金会的一个项目。Log4j是几种Java日志框架之一
Apache基金会所属的项目,是一套Java日志接口
类似于Commons Logging,是一套简易Java日志门面,本身并无日志的实现
一套日志组件的实现(属于SLF4J阵营)
自Java1.4以来的官方日志实现
Apache重写Log4j 1.x,成立新的项目Log4j 2。Log4j 2是Apache开发的一款升级产品;
在这给大家展示的是Log4j 2。log4j 2是一款非常优秀的日志框架,log4j 2与log4j相比发生了很大变化,日志的吞吐量及性能有很大的提升,解决了死锁的问题,配置更加简单灵活,它不兼容log4j。log4j 2具有Logback的所有特性。
log4j2是Apache软件基金会的一个日志框架,具有以下优点:
(1)在项目文件src文件夹中创建lib文件夹,将log4j-api-2.23.1.jar和log4j-core-2.23.1.jar保存正在其中。
(2)在IntelliJ IDEA 开发环境中,执行“File” ——>“Project Structure” 命令。
(3)打开“Project Structure” (项目结构)对话框,选择“Modules” 选项。
(4)在右侧窗格中选择“Dependencies” 选项卡后,单击右侧 “+” 按钮,在打开的菜单中执行“JARs or directories” 命令。
(5)从lib文件夹中选择两个 .jar 文件,单击“OK”按钮,将其添加到列表中并选择,单击“OK”按钮 。
1、src下新建配置文件 [ log4j.xml ]
2、log4j2的配置文件可以使用:.xml、.json或 .jsn等
3、编写代码
- <Configuration status="OFF">
- <Appenders>
- <Console name="Console" target="SYSTEM_OUT">
- <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%l] %-5level-%msg%n"/>
- </Console>
- <File name="log" fileName="log/test.log">
- <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%l] %-5level-%msg%n"/>
- </File>
- </Appenders>
- <loggers>
- <Root level="all">
- <Appender-Ref ref="Console"/>
- <Appender-Ref ref="log"/>
- </Root>
- </loggers>
- </Configuration>

- import org.apache.logging.log4j.LogManager;
- import org.apache.logging.log4j.Logger;
-
- import java.util.InputMismatchException;
- import java.util.Scanner;
-
-
- public class Test1 {
-
- private static Logger logger= LogManager.getLogger(Test1.class.getName());
- public static void main(String[] args) {
- Scanner input = new Scanner(System.in);
- try {
- System.out.println("请输入果实采摘量(公斤):");
- int weight = input.nextInt();
- logger.debug("采摘量:" + weight);
- System.out.println("请输入果商数(家):");
- int num = input.nextInt();
- logger.debug("果商数:" + num);
- System.out.println("每家果商供应" + weight / num + "公斤水果");
- logger.debug("输出结果:" + String.format("%d/%d=%d", weight, num, weight / num));
- } catch (ArithmeticException ex) {
- logger.error("输入有误,果商数应大于零!",ex);
- } catch (InputMismatchException ex) {
- logger.error("输入有误,果实采摘量和果商数应为整数!",ex);
- }catch (Exception ex){
- logger.error(ex.getMessage());
- }finally {
- System.out.println("欢迎再来,预祝生意兴隆!");
- }
- }
- }

根节点,其中可定义appenders节点和loggers节点,属性包含以下内容:
status:可以用来指定Log4j 2本身打印日志的级别
monitorinterval:用来设置配置文件的动态加载时间,单位是秒,最小是5秒
日志输出目的地集合,包含Console、RollingFile、File三类appender节点,这些节点可配置日志输出位置。
日志输出到控制台的配置节点,属性包含如下内容:
name:指定节点名称
target:SYSTEM_OUT或SYSTEM_ERR,一般默认为SYSTEM_OUT
PatternLayout:设置输出格式
日志输出到控制台的配置节点,属性包含如下内容:
name:指定appender名称
filename:指定输出日志的目的文件,必须是全路径的文件名
PatternLayout:输出格式,不设置时,默认为%m%m
logger节点集合,其常见的子节点包含Root和Logger,可配置多个logger。
用来单独指定日志的形式。例如,需要为包下的class指定不同的日志级别等。属性包含如下内容。
name:指定该logger所适用的类或类所在包的全路径
level:日志输出级别
appender-ref:指定日志输出的目标appender
注意:
只需在xml文件中编写存入的格式,然后调用Logger对象(不要选错了,要是对应的xml文件的Logger对象),对象值是导入的xml文件(LogManager).getLogger(类名.class.getName());然后调用这个对象的对应级别日志就会按照你输入的内容存入文件中(File节点)和打印到控制台中(Console节点)。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。