2022-05-11 Log4j 使用&Google-option使用

冲天香阵透长安,满城尽带黄金甲。这篇文章主要讲述2022-05-11 Log4j 使用&Google-option使用相关的知识,希望能为你提供帮助。
Log4j使用概述

  • Log4J  是 Apache 的一个开源项目。通过在项目中使用 Log4J,我们可以控制日志信息输出到控制台、文件、GUI 组件、甚至是数据库中。我们可以控制每一条日志的输出格式,通过定义日志的输出级别,可以更灵活的控制日志的输出过程。方便项目的调试。
  • 官网: ??官网连接??

3大组件
  • Log4J主要由Logger(日志记录器)、Appender(输出端)和 Layout(日志格式化器)组成。
  • Logger控制日志的输出级别与日志是否输出;
  • Appender指定日志的输出方式(ConsoleAppender控制台、FileAppender文件、JDBCAppender等;
  • Layout控制日志信息的输出格式(simple格式、html格式、PatternLayout自定义格式).

日志等级说明
  • 1.Log4J 在 org.apache.log4j.Level 类中定义了:OFF < DEBUG < INFO < WARN < ERROR < FATAL < ALL
  • 2.可以简单地理解为级别越大越重要。 Log4j有一个规则:只输出级别不低于设定级别的日志信息,假设Loggers级别设定为INFO,则INFO、WARN、ERROR、FATAL和ALL级别的日志信息都会输出,而级别比INFO低的DEBUG则不会输出。
  • 3.一般只使用4个级别,优先级从高到低为 ERROR > WARN > INFO > DEBUG。
目录?
说明
ERROR
发生错误事件,但仍不影响系统的继续运行
WARN
警告,即潜在的错误情形
INFO
一般在粗粒度级别上,强调应用程序的运行全程
DEBUG
一般用于细粒度级别上,对调试应用程序非常有帮助


配置log4j.properties
1.只需要在项目路径下新建log4j.properties配置文件,并配置日志的输出格式等信息,Log4J框架会自动的加载配置文件,并将配置信息设置到Logger中。
【2022-05-11 Log4j 使用&Google-option使用】2.log4j.rootLogger = [level], appenderName, appenderName, ... (level是错误级别,appenderName是输出目的地,本例设为Console,可以定义多个)
# 控制台输出配置
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
# 如果使用PatternLayout布局就要指定的打印信息的具体格式ConversionPattern
log4j.appender.Console.layout.ConversionPattern=%d [%t] %p [%c] - %m%n
#指定日志的输出级别与输出端
log4j.rootLogger=DEBUG,Console

#%p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,
#%d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%dyyyy-MM-dd HH:mm:ss,SSS,输出类似:2011-10-18 22:10:28,921
#%r: 输出自应用启动到输出该log信息耗费的毫秒数
#%c: 输出日志信息所属的类目,通常就是所在类的全名
#%t: 输出产生该日志事件的线程名
#%l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。
#%x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
#%%: 输出一个"%"字符
#%F: 输出日志消息产生时所在的文件名称
#%L: 输出代码中的行号
#%m: 输出代码中指定的消息,产生的日志具体信息
#%n: 输出一个回车换行符,Windows平台为"\\r\\n",Unix平台为"\\n"输出日志信息换行

程序中使用Log4j 
  • 项目中引入log4j的jar包
  • 添加配置文件log4j.properties
  • 代码中使用
import org.apache.log4j.Logger;
public class Log4jTest
public static void main(String[] args)
Logger logger = Logger.getLogger(Log4jTest.class);
logger.debug("这是debug");
logger.info("这是info");
logger.warn("这是warn");
logger.error("这是error");
logger.fatal("这是fatal");


测试结果
E:\\Develop\\jdk8\\bin\\java.exe "-javaagent:E:\\Develop\\idea2018-3\\IntelliJ IDEA 2018.3.6\\lib\\idea_rt.jar=61421:E:\\Develop\\idea2018-3\\IntelliJ IDEA 2018.3.6\\bin" -Dfile.encoding=UTF-8 -classpath E:\\Develop\\jdk8\\jre\\lib\\charsets.jar; E:\\Develop\\jdk8\\jre\\lib\\deploy.jar; E:\\Develop\\jdk8\\jre\\lib\\ext\\access-bridge-64.jar; E:\\Develop\\jdk8\\jre\\lib\\ext

    推荐阅读