[日志_log4j] 总结

1. log4j基础

  • 概述

    java装载了自己的日志API(JDK1.4起),并且Tomcat6绑定了它的容器。日志API的友好实现,成为JULI。不过log4j由于它的完备和开发友好性,仍然是应用广泛的实现。容易配置log4j来记录运行的消息,不会影响应用程序的性能。

  • jar包下载地址:官网下载地址

2. log4j入门示例

  • java代码

    Logger logger = Logger.getLogger(HelloLog4j.class); //参数为该类的类名
    logger.debug("This is debug message.");// 记录 debug 级别的信息
    logger.info("This is info message.");// 记录 info 级别的信息
    logger.error("This is error message.");// 记录 error 级别的信息
  • 配置文件信息
#可以设置级别: debug>info>warn>error
#debug:显示 debug、 info、 error信息
#info:显示 info、 error信息
#error:只显示error信息
log4j.rootLogger=debug,appender1
#log4j.rootLogger=info,appender1
#log4j.rootLogger=error,appender1
#输出到控制台
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
#样式为 TTCCLayout
log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
  • 总结

    通过配置文件可知,我们需要配置3个方面的内容(三个重要的组件构成):

    1、根目录(级别和目的地);

    2、目的地(控制台、文件等等);

    3、输出样式。

3. log4j配置文件

  1. log4j类关系图

  2. 说明

    Logger:日志写出器,供程序员输出日志信息

    Appender:日志目的地,把格式化好的日志信息输出到指定的地方去

    ConsoleAppender:目的地为控制台的

    AppenderFileAppender:目的地为文件的

    AppenderRollingFileAppender:目的地为大小受限的文件的

    AppenderLayout:日志格式化器,用来把程序员的loggingrequest格式化成字符串

    PatternLayout:用指定的pattern格式化loggingrequest的Layout

  3. Log4j配置文件说明
    • 配置根Logger

      语法:log4j.rootLogger=[level],appenderName,appenderName,……

      说明:level是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。appenderName就是指日志信息输出到哪个地方。您可以同时指定多个输出目的地。

    • 配置日志信息输出目的地Appender,

      语法

      log4j.appender.appenderName=fully.qualified.name.of.appender.class
      log4j.appender.appenderName.option1=value1……
      log4j.appender.appenderName.option=valueN

      说明

      org.apache.log4j.ConsoleAppender(控制台),
      org.apache.log4j.FileAppender(文件),
      org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
      org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
      org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
    • 配置日志信息的格式(布局)

      语法

      log4j.appender.appenderName.layout=fully.qualified.name.of.layout.class
      log4j.appender.appenderName.layout.option1=value1……
      log4j.appender.appenderName.layout.option=valueN

      **说明:**Log4j提供的layout有以几种

      org.apache.log4j.HTMLLayout(以HTML表格形式布局),
      org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
      org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
      org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
    • 格式化打印日志信息

      %p输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL

      %r输出自应用启动到输出该log信息耗费的毫秒数

      %c输出所属的类目,通常就是所在类的全名

      %t输出产生该日志事件的线程名

      %n输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”

      %d输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:

      %d{yyyMMMddHH:mm:ss,SSS},输出类似:2002年10月18日22:10:28,921

      %l输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数

4. 在代码中使用log4j

///1.获取日志记录器
public static Logger getLogger( String name);//这个记录器将负责控制日志信息
///2. 读取配置文件
BasicConfigurator.configure () : 自动快速地使用缺省 Log4j 环境。
PropertyConfigurator.configure ( String configFilename) :读取使用Java 的特性文件编写的配置文件。
DOMConfigurator.configure ( String filename ) :读取 XML 形式的配置文件。
///3. 插入记录信息(格式化日志信息)
Logger.debug ( Object message ) ;
Logger.info ( Object message ) ;
Logger.warn ( Object message ) ;
Logger.error ( Object message ) ;
时间: 2024-10-06 11:16:55

[日志_log4j] 总结的相关文章

winform学习日志(二十三)---------------socket(TCP)发送文件

一:由于在上一个随笔的基础之上拓展的所以直接上代码,客户端: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net.Sockets; using Sys

MySQL binlog日志恢复数据

我们了解了MySQL 的 binlog 日志的开启方式以及 binlog 日志的一些原理和常用操作,我们知道,binlog 有两大作用,一个是使用 binlog 恢复数据,另一个就是用来做主从复制.本篇笔记就是来记录如何使用 binlog 日志来做数据恢复.当然了,使用 binlog 日志所恢复的数据只能是部分数据,并不能够使用 binlog 日志来做数据库的备份,如果想要做数据库备份,依然要使用我们传统的备份方法,而 binlog 可以作为增量备份. 视频链接:http://www.ronco

sparkStreaming结合sparkSql进行日志分析

package testimport java.util.Propertiesimport org.apache.spark.SparkConfimport org.apache.spark.SparkContextimport org.apache.spark.sql.{SQLContext, SaveMode}import org.apache.spark.streaming.Secondsimport org.apache.spark.streaming.StreamingContext

ELK 日志分析系统

架构如下,logstash-agent ---->redis---->logstash-server----->elasticsearch---->kibana 需求:想收集多个log文件,例如/var/log/messages,  /var/log/logstash/logstash.err  两个日志文件: logstash     input和output  如何写, input { file  { path => "/var/log/messages&quo

log4j日志基本配置

Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置. 1.Loggers Loggers组件在此系统中被分为五个级别:DEBUG.INFO.WARN.ERROR和FATAL.这五个级别是有顺序的,DEBUG < INFO < WARN < ERROR < FATAL,分别用

【Docker常见问题2】如何设置容器日志大小和保留个数

举例:当tomcat容器的运行,容器占用空间越来越大,约1个月就会超过2G,如何解决? 步骤1:查看容器日志大小:假设容器目录为/var/lib/docker/containers,那么执行如下命令 cd /var/lib/docker/containers  #进入默认容器空间目录 du -sh *            #统计文件大小2.4G  de92a5643f7ffb106f8abba21fc0f93996842917a52879153adc95a73312934a-json.log

ABP官方文档翻译 4.6 审计日志

审计日志 介绍 关于IAuditingStore 配置 通过特性启用/禁用 注意事项 介绍 维基百科:“审计追踪(也称为审计日志)是与安全相关的按时间先后的记录.记录集合.记录的目的地和源,提供一系列活动的纪实证据,这些活动可能在任何时刻影响一个特定操作.过程或事件.” ABP提供了基础设施自动记录应用所有的交互.它可以记录方法调用的调用者和参数. 基本上,保存的字段有:相关的tenant id,调用者user id,调用者service name(调用方法的类),调用者method name,

Log4j日志框架

引入依赖 在maven远程仓库引入依赖 <dependencies> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> </dependencies> 配置文件 在 src/main/resources 目录下新建配置文件

日志应该满足的要求

中文: 时间戳-  表示事件何时发生 格式化- 日志行应该容易让人理解,同时便于程序解析 日志地点- 它应该是标准输出和错误,应用不需要关心日志的地点 日志等级- 日志事件应该有不同的服务等级,大部分情况下我们比较关心debug 和info 级别的事件 英文: timestamps - it is crucial to know which event happened when, formatting - log lines must be easily understandable by h