首页 > Log4J的配置

Log4J的配置

Log4J简介

日志记录功能是一个项目中重要的组成部分,Log4J是APache下的一个开源日志组件,为java开发者提供了很大的便利。

Loggers,日志信息的优先级

日志信息的优先级从高到低有ERROR、WARN、 INFO、DEBUG,分别用来指定这条日志信息的重要程度,设置为高级别的优先级时,低优先级的日志将不会输出,比如将日志级别设置为INFO,则DEBUG级别的目录不会被记录,为了防止日志输出泛滥,最好不要将日志级别设置太低,一般为INFO即可。

Appenders,日志信息的输出目的地

日志信息的输出目的地指定了日志将打印到控制台还是文件中,参数如下:

org.apache.log4j.ConsoleAppender (控制台)

org.apache.log4j.FileAppender (文件)

org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件,本文中的案例选择的策略)

org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件,也是一个不错的选择)

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

Layouts,日志信息的输出格式

输出格式的功能是控制日志信息的显示内容,参数如下:

org.apache.log4j.HTMLLayout(以HTML表格形式布局)

org.apache.log4j.PatternLayout(可以灵活地指定布局模式,本案例所选择的策略,需对日志格式进行设置)

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

org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

Log4J的输出格式 :

layout中的参数都以%开始,后面不同的参数代表不同的格式化信息(参数按字母表顺序列出): 

%c 输出所属类的全名,可在修改为 %d{Num} ,Num类名输出的维(如:"org.apache.elathen.ClassName",%C{2}将输出elathen.ClassName) 

%d 输出日志时间其格式为 %d{yyyy-MM-dd HH:mm:ss,SSS},可指定格式 如 %d{HH:mm:ss} 

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

%n 换行符 

%m 输出代码指定信息,如info(“message”),输出message 

%p 输出优先级,即 FATAL ,ERROR 等 

%r 输出从启动到显示该log信息所耗费的毫秒数 

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

 Log4J配置文件 :   

复制代码
# 配置根Logger
# level是指 日志的输出级别 ,优先级从高到低分别是 ERROR 、 WARN 、 INFO 、 DEBUG 。
# appenderName 就是指日志信息输出到哪个地方。您可以同时指定多个输出目的地。
log4j.rootLogger  =   [ level ] , appenderName, appenderName, … # 定义日志输出目的地
# appenderName就是指日志输出的目的地,和log4j.rootLogger中的相同。
log4j.appender.appenderName=org.apache.log4j.DailyRollingFileAppender# org.apache.log4j.ConsoleAppender (控制台)
# org.apache.log4j.FileAppender (文件)
# org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文件)
# org.apache.log4j.RollingFileAppender (文件大小到达指定尺寸的时候产生一个新的文件)
# org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方)# 设置文件输出路径  mylog为日志文件的文件名,路径为根目录下的logs文件夹下的mylog.log文件
log4j.appender.appenderName.file=../logs/mylog.log# 当天的日志是mylog.log,当天过去之后,mylog.log就会重命名为mylog_yyyy-MM-dd.log ,yyyy-MM-dd为当天的日期
log4j.appender.appenderName.DatePattern='_'yyyy-MM-dd'.log'# 配置日志信息的格式(布局)
log4j.appender.appenderName.layout = org.apache.log4j.PatternLayout  # org.apache.log4j.HTMLLayout (以 HTML 表格形式布局)
# org.apache.log4j.PatternLayout (可以灵活地指定布局模式)
# org.apache.log4j.SimpleLayout (包含日志信息的级别和信息字符串)
# org.apache.log4j.TTCCLayout (包含日志产生的时间、线程、类别等等信息)# 日志信息输出格式 
# [日期] 日志级别  全路径类名 行号 日志信息 
log4j.appender.appenderName.layout.ConversionPattern=  [%d{yyyy-MM-dd HH:mm:ss}] %-5p %c  %L -%m%n# layout中的参数都以%开始,后面不同的参数代表不同的格式化信息(参数按字母表顺序列出):# - X 号 : X 信息输出时左对齐; 
# %p: 输出日志信息优先级,即 DEBUG , INFO , WARN , ERROR , FATAL,
# %d: 输出日志时间点的日期或时间,默认格式为 ISO8601 ,也可以在其后指定格式,比如: %d{yyy MMM dd HH:mm:ss,SSS}
# %r: 输出自应用启动到输出该 log 信息耗费的毫秒数 
# %c: 输出日志信息所属的类目,通常就是所在类的全名 
# %t: 输出产生该日志事件的线程名 
# %l: 输出日志事件的发生位置,相当于 %C.%M(%F:%L) 的组合 , 包括类目名、发生的线程,以及在代码中的行数。举例: Testlog4.main(TestLog4.java:10)
# %x: 输出和当前线程相关联的 NDC( 嵌套诊断环境 ), 尤其用到像 Java servlets 这样的多客户多线程的应用中。 
# %%: 输出一个 "%" 字符 
# %F: 输出日志消息产生时所在的文件名称 
# %L: 输出代码中的行号 
# %m: 输出代码中指定的消息 , 产生的日志具体信息 
# %n: 输出一个回车换行符, Windows 平台为 "/r/n" , Unix 平台为 "/n" 输出日志信息换行 # 设置日志字符集编码格式 
log4j.appender.appenderName.encoding=utf-8# 设置日志的输出级别,和log4j.rootLogger里面的相比 取级别高的。
log4j.appender.appenderName.Threshold = ERROR# 设置日志文件最大尺寸
log4j.appender.ROLLING_FILE.MaxFileSize=10MB   







#ex:

log4j.rootLogger = ERROR , appenderName , Console

log4j.appender.Console=org.apache.log4j.ConsoleAppender

log4j.appender.Console.layout = org.apache.log4j.PatternLayout 

log4j.appender.Console.layout.ConversionPattern= [%d{yyyy-MM-dd HH:mm:ss}] %-5p %c %L -%m%n

log4j.appender.appenderName=org.apache.log4j.DailyRollingFileAppender

log4j.appender.appenderName.file=../logs/mylog.log

log4j.appender.appenderName.DatePattern='_'yyyy-MM-dd'.log'

log4j.appender.appenderName.layout = org.apache.log4j.PatternLayout 

log4j.appender.appenderName.layout.ConversionPattern= [%d{yyyy-MM-dd HH:mm:ss}] %-5p %c %L -%m%n

log4j.appender.appenderName.encoding=utf-8 

log4j.appender.appenderName.Threshold = ERROR 

log4j.appender.ROLLING_FILE.MaxFileSize=10MB

复制代码

java 中的应用

复制代码
private static Logger logger = Logger.getLogger(this.getClass().getName);Logger.debug(Object message);  // 调试信息 Logger.info(Object message);   // 一般信息 Logger.warn(Object message);   // 警告信息 Logger.error(Object message);  // 错误信息 
复制代码

 

转载于:https://www.cnblogs.com/zhaohongtian/p/6807395.html

更多相关:

  • ELK:(ELK 由 ElasticSearch 、 Logstash 和 Kiabana 三个开源工具组成),Elasticsearch用于存储日志信息,Logstash用于收集日志,Kibana用于图形化展示。上一节我们介绍了如何使用docker-compose搭建ELK日志分析系统。传送门:传说中的ELK日志分析系统,手把手教你...

  • 欢迎关注头条号:老顾聊技术精品原创技术分享,知识的组装工目录前言常用日志组件什么是日志门面和日志实现常见的日志框架日志使用@slf4j注解日志的配置logback-spring配置总结前言日志是我们系统必备的功能之一,可以帮助我们开发人员定位系统的异常、错误以及运行流程的重要的工具。今天老顾就来介绍一下Spring boot的默认的l...

  • glog简介 glog是著名的google开源C++日志库glog(https://github.com/google/glog)的golang版本,glog是一个轻量级的日志库,上手简单不需要配置文件并且稳定高效,可以自定义控制的内容比较少。  glog主要有以下几个特点:  1. glog有四种日志等级INFO < WARING...

  • 应用场景 该配置文件用于ATS用作反向代理模式,访问日志被server域名分隔。比如,我想将sohu和ifeng的域名的日志分别记在两个不同的日志文件中,其它的日志统一记在默认的日志文件中。 配置 为了将不同源站的HTTP transaction记录在不同的日志文件中,你必须在log_hosts.config中列举出每...

  • 缘起 近来因为公司项目需要,阅读了一部分ATS logging system的源码实现,越发觉得logs_xml.config文件的配置非常重要,而我目前只是实践了一点它的皮毛。为此,根据自己的理解,翻译了官网的这篇文档,以作备忘。 logs_xml.config文件定义了自定义日志文件格式,过滤器和处理选项。文件格式采用x...

  • 全卷积网络(FCN) 1.全卷积神经网络介绍 FCN对图像进行像素级的分类,从而解决了语义级别的图像分割(semantic segmentation)问题。与经典的CNN在卷积层之后使用全连接层得到固定长度的特征向量进行分类(全联接层+softmax输出)不同,FCN可以接受任意尺寸的输入图像,采用反卷积层对最后一个卷积层的fea...

  • printf()函数优点在于可以格式化输出 格式:   %['padding_character][-][width][.precision]type   所有的转换说明都是以%开始,如果想打印一个%符号,必须用%% ;   参数“'padding_character”是可选,它将被用来填充变量直至所指定的宽度,该参...

  • 给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按GPLTGPLT....这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出。 输入格式: 输入在一行中给出一个长度不超过10000的、仅...

  • 给定两个整数A和B,输出从A到B的所有整数以及这些数的和。 输入格式: 输入在一行中给出2个整数A和B,其中−100≤A≤B≤100,其间以空格分隔。 输出格式: 首先顺序输出从A到B的所有整数,每5个数字占一行,每个数字占5个字符宽度,向右对齐。最后在一行中按Sum = X的格式输出全部数字的和X。 输入样例:...

  • python面试题目 原文地址:https://www.usblog.cc/blog/post/justzhl/b5cc9a05c7d2 问题一:以下的代码的输出将是什么? 说出你的答案并解释。 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Parent(object):     x...

  • 原来我们可以从官网 http://trafficserver.apache.org/tools/via 获取via头的解码信息来得到指定url的缓存状态信息,现在我们可以直接利用本地工具就可以达到目的。 traffic_via工具能够解码Via头信息,输入的参数要求是[]包含的字符串。 使用方法: 参考...

  • 简介 channel_stats插件能对每个channel收集运行时统计信息(速率,请求数,更多选项将在未来添加),这些统计信息通过http json方式输出,这些 接口代码取自stats_over_http插件。通常,该插件只用于具有*固定*个数的remap规则的反向代理服务器,它并非为那些不限制channel的代理服务器,比如op...

  • logger是一个shell命令接口,可以通过该接口使用Syslog的系统日志模块,还可以从命令行直接向系统日志文件写入一行信息 logger语法: 可以使用的相关命令 -d, --udp 使用数据报(UDP)而不是使用默认的流连接(TCP) -i, --id 逐行记录每一次logger的进程ID -f, --fil...

  • 今天在测试中遇到了一个问题 使用JMeter时请求相关地址参数及方法都填写正确,但是相应数据返回始终不对,例如 查看取样器结果显示 200 正常,但响应数据不符合正常的结果。 经反复检查发现问题如下: 1)没有添加HTTP信息头管理器 (获取根据就近原则) 2)HTTP信息头管理器中填写错误,将Content-Type 填写成了Co...

  • 第一,你要有log4j的对应的包,由于我用的maven,所以直接在pom.xml文件依赖下载则可,如你尚为有此包,请自行百度下载导入,或上http://www.mvnrepository.com/搜索。上如则是我的log4j的包的版本。好了,用了jar包之后,用来学习的项目结构如下:在对应的路径下创建log4Test.java和log...