log4j简介及应用

一、介绍 

Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务 器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。 Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。日志信息的优先级从高到低有ERROR、WARN、 INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。

 

log4j的历史

 

  • 始于1996年初的E.U. SEMPER (安全电子市场为欧洲)跟踪API的项目。

  • 不计其数的改进,在几个大量的工作之后,API已经发展成为log4j,一个流行的日志记录包为Java。

  • 该软件包是Apache软件许可证,由开源认证是一个不折不扣的开源许可证下发布。

  • 最新log4j的版本,包括完整的源代码,类文件和文档可以在这里找到 http://logging.apache.org/log4j/.

 

Log4j使用的几个关键点?

根记录器(Logger),输出端(appenders)和布局(layouts)

a)定义根记录器的格式为

log4j.rootLogger = [ level ], appendName1, appendName2, „appendNameN。同一个记录器可

有多个输出端。PS:level的级别(此级别可以自定义,系统默认提供了以下级别) 

◆debug//调试信息

◆info//一般信息

◆warn//警告信息

◆error//错误信息

◆fatal//致命错误信

b)定义一个appender的输出目的地的格式为

log4j.appender.appenderName = fully.qualified.name.of.appender.class。log4j

提供了以下几种常用的输出目的地:

◆org.apache.log4j.ConsoleAppender,将日志信息输出到控制台

◆org.apache.log4j.FileAppender,将日志信息输出到一个文件 

◆org.apache.log4j.DailyRollingFileAppender,将日志信息输出到一个,并且每天输出到一个新的日志文件

◆org.apache.log4j.RollingFileAppender,将日志信息输出到一个文件,通过指定文件的的尺寸,当文件大小到达指定尺寸的时候会自动把文件改名,如为example.log的文件会改名为example.log.1,同时产生一个新的example.log文件。如果新的文件再次达到指定尺寸,又会自动把文件改名为example.log.2,同时产生example.log文件。依此类推,直到example.log. MaxBackupIndex,MaxBackupIndex的值可在配置文件中定义。

◆org.apache.log4j.WriterAppender,将日志信息以流格式发送到任意指定的地方。

◆org.apache.log4j.jdbc.JDBCAppender,通过JDBC把日志信息输出到数据库中。

c)输出格式(布局)layout Log4j

提供了一下几种布局:

◆org.apache.log4j.HTMLLayout,以HTML表格形式布局

◆org.apache.log4j.PatternLayout,可以灵活地指定布局模式

◆org.apache.log4j.SimpleLayout,包含日志信息的级别和信息字符串

PS:ConversionPattern参数的格式含义 

%c 输出日志信息所属的类的全名 

%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28

%f 输出日志信息所属的类的类名

%l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行

%m 输出代码中指定的信息,如log(message)中的message 

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

%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推

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

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

 

log4j 特性:

  • log4j的是线程安全的

  • log4j是经过优化速度的

  • log4j是基于一个名为记录器的层次结构

  • log4j的支持每个记录器多输出追加器(appender)

  • log4j支持国际化。

  • log4j并不限于一组预定义的设备

  • 日志行为可以使用配置文件在运行时设置

  • log4j设计从一开始就是处理Java异常

  • log4j使用多个层次,即ALL,TRACE,DEBUG,INFO,WARN,ERROR和FATAL

  • 日志输出的格式可以通过扩展Layout类容易地改变

  • 日志输出的目标,以及在写入策略可通过实现Appender程序接口改变

  • log4j 会故障停止。然而,尽管它肯定努力确保传递,log4j不保证每个日志语句将被传递到目的地。

 

 

 

转载于:https://www.cnblogs.com/yhsj/p/4909989.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/287075.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(9)有一些人在学习编程的时候总以为代码是死板的

本系列文章将会以通俗易懂的对话方式进行教学,对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新,包括别的语言以及实战都将使用对话的方式进行教学,基础编程语言教学适用于零基础小白,之后实战课程也将会逐步更新。 若…

GPS实验一:GPS手持机的使用

一、实习目的 了解GPS手持机的使用 二、实习内容 了解GPS手持机的功能和相关操作 三、实习地点 选择视野开阔的场所,方便接受卫星信号。 四、实习工具 GPS接收机是一款手持型的个人导航设备,它可以利用GPS卫星星座计算出当前的位置。其主要图标有:OUT/IN(放大/缩小)、N…

.NET性能优化-推荐使用Collections.Pooled

简介性能优化就是如何在保证处理相同数量的请求情况下占用更少的资源,而这个资源一般就是CPU或者内存,当然还有操作系统IO句柄、网络流量、磁盘占用等等。但是绝大多数时候,我们就是在降低CPU和内存的占用率。之前分享的内容都有一些局限性&a…

Android之PC浏览器上传表单格式大文件到手机客户端read函数阻塞问题

1 、问题 PC浏览器上传表单格式大文件到手机服务器端,然后read文件真实数据时候出现阻塞。 比如 User-Agent: PostmanRuntime/7.26.1Accept: */*Cache-Control: no-cachePostman-Token: c7e5e240-4398-4ac6-ba7f-98e99b5b4a01Host: 10.15.42.180:9999Accept-Encoding: gzip,…

避免活跃性危险(第十章)

2019独角兽企业重金招聘Python工程师标准>>> 避免活跃性危险 在安全性与活跃性之间通常存在着某种制衡,我们使用加锁机制来确保线程安全,但如果过度地使用加锁,则可能导致“锁顺序死锁”。同样,我们使用线程池和信号量…

[poj2446]Chessboard

Description 给定一个mn的棋盘&#xff0c;上面有k个洞&#xff0c;求是否能在不重复覆盖且不覆盖到洞的情况下&#xff0c;用21的卡片完全覆盖棋盘。 Input 第一行有三个整数n,m,k(0<m,n<32, 0<k<mn)&#xff0c;m表示行数&#xff0c;n表示列数。 接下来k行&…

Ubuntu下编译内核

一、下载源代码和编译软件的准备 下载内核源代码&#xff1a;http://www.kernel.org/ 注意&#xff0c;点击2.6.25内核的F版&#xff0c;即完整版。 如果你懒得去网站点联接&#xff0c;运行下列命令&#xff1a; 代码:$cd ~$ wget http://www.kernel.org/pub/linux/kernel/v2.…

(10)C#偷懒的开始永无止境的循环?

本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新&#xff0c;包括别的语言以及实战都将使用对话的方式进行教学&#xff0c;基础编程语言教学适用于零基础小白&#xff0c;之后实战课程也将会逐步更新。 若…

活照片 android,活照片app安卓

活照片app是当前国内一款最新的图片处理应用软件&#xff0c;能帮助大家快速进行最新的手机拍照、处理功能&#xff0c;当前活照片app已经推出了安卓、苹果版本&#xff0c;可以帮助大家一键修图&#xff0c;将你的图片变得更加有趣。活照片app功能&#xff1a;它可以让你的照片…

Jwt隐藏大坑,通过源码揭秘

前言JWT是目前最为流行的接口认证方案之一&#xff0c;有关JWT协议的详细内容&#xff0c;请参考&#xff1a;https://jwt.io/introduction今天分享一下在使用JWT在项目中遇到的一个问题&#xff0c;主要是一个协议的细节&#xff0c;非常容易被忽略&#xff0c;如果不是自己遇…

GPS实验二:GPS接收机的使用

一、实习目的 1、了解GPS接收机的基本结构; 2、掌握GPS接收机的一般操作方法。 二、实习内容 1、了解GPS接收机的外观及主要构成单元; 2、学习GPS接收机的安装及静态测量的操作方法; 3、了解GPS接收机工作时的基本状态信息。 三、实习地点 选择视野开阔的场所,视场…

Android之解决CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+RecyclerView里面再嵌套RecyclerView滑动颤抖问题

1 问题 主页面用的是这种结构 CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+RecyclerView(里面再嵌套RecyclerView,然后这个RecyclerView再嵌套一个RecyclerView)上下滑动在AppBarLayout下面出现页面上下颤抖问题 2 分析 我的主页代码如下 <?xml versio…

文件传输基础——Java IO流

一、文件的编码 1 package com.study.io;2 3 4 /**5 * 测试文件编码6 */7 public class EncodeDemo {8 9 /** 10 * param args 11 * throws Exception 12 */ 13 public static void main(String[] args) throws Exception { 14 String s&quo…

keepalived实现nginx的高可用(双主模型)

实验环境&#xff1a;RS1&#xff1a;rip&#xff08;172.16.125.7&#xff09;&#xff0c;安装httpd软件包&#xff1b;RS2&#xff1a;rip&#xff08;172.16.125.8&#xff09;&#xff0c;安装httpd软件包&#xff1b;director1&#xff08;7-1.lcs.com&#xff09;&#…

【必懂C++】第一个程序当然是HelloWorld呀 01

作者简介 作者名&#xff1a;1_bit 简介&#xff1a;CSDN博客专家&#xff0c;2020年博客之星TOP5&#xff0c;蓝桥签约作者。15-16年曾在网上直播&#xff0c;带领一批程序小白走上程序员之路。欢迎各位小白加我咨询我相关信息&#xff0c;迷茫的你会找到答案。系列教程将会…

实现html5音乐的自动播放,html5中audio实现播放列表和自动播放

var count 43; //一共多少MP3文件var index 18.mp3; // 初始化播放那个文件window.onload function(){var audio new Audio();audio.preload true;audio.controls true;audio.loop false;audio.src index;document.body.appendChild(audio);audio.play();audio.addEven…

GPS实验三:GPS接收机野外数据采集

一、实习目的 1、掌握GPS接收机的使用方法; 2、学会量取天线高 3、掌握选点和埋设标志的原则 二、实习内容 1、了解GPS接收机的外观及主要构成单元; 2、学习GPS接收机的安装及静态测量的操作方法; 3、了解GPS接收机工作时的基本状态信息。 三、实习地点 选择视野开阔的…

打造操作系统根社区 统信Deepin屹立于浪潮之颠

如果把芯片比作信息系统的大脑的话&#xff0c;那么操作系统毫无疑问就是信息系统的灵魂。在过去几十年里&#xff0c;我国信息产业饱受“缺芯少魂”的困扰&#xff0c;国内市场基本被微软、谷歌、苹果、IBM、红帽等外商垄断。诚然&#xff0c;一些国内厂商推出过基于Fedora、u…

Androd之在图片右上角显示红色圆圈里面数字提醒

1 需求 在图片右上角显示红色圆圈里面数字提醒 2 效果如图 3 关键代码 item_loca.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_wid…

Bean

Bean spring中把一切配置到IOC容器(其实就是那个xml文件)里面的对象都称之为bean。 转载于:https://www.cnblogs.com/Renyi-Fan/p/7780935.html