当前位置: 首页 > news >正文

网站建设小公司生存网上学电脑培训中心

网站建设小公司生存,网上学电脑培训中心,乐东黎族自治县住房建设局网站,wordpress添加logo代码点击下方关注我,然后右上角点击...“设为星标”,就能第一时间收到更新推送啦~~~ 介绍几个日志使用方面的基础知识。 1 Log4j 1、Log4j 介绍 Log4j(log for java)是 Apache 的一个开源项目,通过使用 Log4j,我…

点击下方关注我,然后右上角点击...“设为星标”,就能第一时间收到更新推送啦~~~

介绍几个日志使用方面的基础知识。

1

Log4j

fb6ceead2c427c5462b2aaef9e2182f1.png

1、Log4j 介绍

Log4j(log for java)是 Apache 的一个开源项目,通过使用 Log4j,我们可以控制日志信息输出到日志文件、也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用程序的代码。

2、Log4j 使用步骤说明

(1)选择 jar 包

加入 log4j-1.2.17.jar 到 Libraries 下,如果使用 maven 项目,也可以选择在 pom.xml 中新增依赖如下:

<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>

(2)log4j.properties 配置

Log4j 有三个主要组件:记录器, appender 和布局。这三种类型的组件协同工作,使开发人员能够根据消息类型和级别记录消息,并在运行时控制这些消息的格式和报告位置。

Log4j 建议只使用四个级别,优先级从高到低分别是 ERROR、WARN、INFO、DEBUG。

比如定义了 INFO 级别,只有等于及高于这个级别的才进行处理,则应用程序中所有 DEBUG 级别的日志信息将不被打印出来。ALL,打印所有的日志;OFF,关闭所有的日志输出。

appenderName,就是指定日志信息输出到哪个地方。可同时指定多个输出目的地。

在 src 根目录下建立 log4j.properties,根据自己的需求,相应的修改其中的配置,其内容如下所示:

#配置根Logger
#改代码表示输输出info级别以上的日志,文件分别输出,一个是file,一个是errorlog4j.rootLogger=info,file,error 
#配置file日志信息输出目的地Appender
#定义名为file的输出端是每天产生一个日志文件log4j.appender.file=org.apache.log4j.DailyRollingFileAppender    #指定日志信息的最低输出级别位INFO,默认为DEBUG。log4j.appender.file.Threshold=INFO    #指定当前消息输出到jpm/log4j/log.log文件中log4j.appender.file.File=/jpm/log4j/log.log    #指定按天来滚动日志文件log4j.appender.file.DatePattern=yyyy-MM-dd    #配置日志信息的格式(布局)Layout是可以灵活地指定布局模式log4j.appender.file.layout=org.apache.log4j.PatternLayout    #格式化日志,Log4j采用类似C语言中的printf函数的打印格式格式化日志信息log4j.appender.file.layout.ConversionPattern=[%d{yyyy-MM-ddHH:mm:ss}][%-5p][jpm-%c{1}-%M(%L)]-%m%n    #指定输出信息的编码log4j.appender.file.encoding=UTF-8
#配置error日志信息输出目的地Appender
#定义名为error的输出端是每天产生一个日志文件log4j.appender.error=org.apache.log4j.DailyRollingFileAppender    #指定日志信息的最低输出级别位ERROR,默认为DEBUG。log4j.appender.error.Threshold=ERROR    #指定当前消息输出到jpm/log4j/error.log文件中log4j.appender.error.File=/jpm/log4j/error.log    #指定按月来滚动日志文件log4j.appender.error.DatePattern=yyyy-MM    #配置日志信息的格式(布局)Layout是可以灵活地指定布局模式log4j.appender.error.layout=org.apache.log4j.PatternLayout    #格式化日志,Log4j采用类似C语言中的printf函数的打印格式格式化日志信息log4j.appender.error.layout.ConversionPattern=[%d{yyyy-MM-ddHH:mm:ss}][%-5p][jpm-%c{1}-%M(%L)]-%m%n    #指定输出信息的编码log4j.appender.error.encoding=UTF-8
#使某个功能的日志单独输出到指定的日志文件log4j.logger.saveUserLog=INFO,saveUserLog    #该配置就是让job的日志只输出到自己指定的日志文件中,表示Logger不会在父Logger的appender里输出,默认为true。log4j.additivity.saveUserLog=falselog4j.appender.saveUserLog=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.saveUserLog.File=/jpm/log4j/saveUserLog.loglog4j.appender.saveUserLog.DatePattern=yyyy-MM-ddlog4j.appender.saveUserLog.Append=truelog4j.appender.saveUserLog.layout=org.apache.log4j.PatternLayoutlog4j.appender.saveUserLog.layout.ConversionPattern=%m%nlog4j.appender.error.encoding=UTF-8

(3)输出日志的代码示例

package jpm;    
import org.apache.log4j.Logger;    
public class TestLog4j {        
public static void main(String[] args) {            
final Logger logger = Logger.getLogger(TestLog4j.class);            final Logger saveUserLog = Logger.getLogger("saveUserLog");            if (logger.isDebugEnabled()) {logger.debug("debug");logger.info("info");logger.error("error");saveUserLog.info("张三,男,26岁,北京大学,2018-05-19,学霸");}
}

4)以上代码示例生成的日志文件及日志详情

d8dca088e245a94c7d6464f872b31714.png

57a8e00a38ed84091694908ad1a33cc5.png

2

JUL ( java.util.logging

24ce41531186c37c60b09e1095dc099a.png

1、JUL( java.util.logging) 介绍

Java Logging API 是 Sun 公司于 2002 年 5 月正式发布的。它是自 J2SE 1.4 版本开始提供的一个新的应用程序接口,JUL(在 java.util.logging 包下),需 JDK1.4 版本以上才能支持,java.util.logging.* 包是 JDK 的日志记录 API。

387d9265d990bdd29350d4a52868ce45.png

强烈不推荐使用 java.util.logging 记录日志,因此这里不提供对应示例。

3

java common logging

d6739a7b48838816908b712dc6b667d8.png

commons-logging 提供的是一个日志接口,是为那些需要建立在不同环境下使用不同日志架构的组件或库的开发者创建的,其中包括 log4j 以及 Java log 的日志架构。commons-logging 有两个基本的抽象类:Log(基本记录器) 和 LogFactory(负责创建 Log 实例)。把日志信息抽象成 commons-logging 的 Log 接口,并由 commons-logging 在运行时决定使用哪种日志架构。因为 Log4j 的强大功能,commons-logging 一般会和 Log4j 一起使用,这几乎成为了 Java 日志的标准工具。

4

SLF4J 介绍

7054e01b7c44537c79f8a8cb9dbcbb6f.png

SLF4J 全称为 Simple Logging Facade for JAVA,即 java 简单日志门面。和 commons-loging 一样也是对不同日志框架提供的一个门面封装,可以在部署的时候不修改任何配置即可接入一种日志实现方案,能支持多个参数,并通过 {} 占位符进行替换。

看这个 Log4J 示例:   

Logger.debug("Hello " + name);

由于字符串拼接的问题(注:上述语句会先拼接字符串,再根据当前级别是否低于 debug 决定是否输出本条日志,即使不输出日志,字符串拼接操作也会执行),因此许多公司一般强制使用下面的语句,这样只有当前处于DEBUG级别时才会执行字符串拼接:

if (logger.isDebugEnabled()) {LOGGER.debug(“Hello ” + name);
}

它避免了字符串拼接问题,可是有点太繁琐了。而 SLF4J 提供下面这样简单的语法:

LOGGER.debug("Hello {}", name);

它的形式类似第一条示例,但是又没有字符串拼接问题,也不像第二条那样繁琐。

正是因为 SLF4J 的这个占位符功能,使得人们越来越多的地使用 SLF4J 这个接口用到实际开发项目中。

为什么需要日志接口,直接使用具体的实现不就行了吗?

接口用于定制规范,可以有多个实现,使用时是面向接口的(导入的包都是 SLF4J 的包或者是 JCL 的包,而不是具体某个日志框架中的包),即直接和接口交互,不直接使用实现,所以当需要更换实现的时候,直接更换实现就可以了,而不用更改代码中的日志相关代码。

比如:SLF4J 定义了一套日志接口,项目中使用的日志框架是 log4j,开发中调用的所有接口都是 SLF4J 的,不直接使用 log4j,项目应用调用 SLF4J 的接口,SLF4J 的接口去调用 log4j 的实现,整个应用程序并没有直接使用 log4j,当项目需要更换更加优秀的日志框架时(如 logback)只需要引入 logback 的 jar 和 logback 对应的配置文件即可,完全不用更改 Java 代码中的日志相关的代码 logger.info(“hello world”),也不用修改日志相关的类的导入的包(import org.slf4j.Logger; import org.slf4j.LoggerFactory;)。

因此日志门面的使用,为后续具体日志系统的实现更换带来了方便。

后面为大家介绍项目中的 Logback 使用示例。


文章转载自:
http://pro.mzpd.cn
http://edacity.mzpd.cn
http://serranid.mzpd.cn
http://contingently.mzpd.cn
http://effervescence.mzpd.cn
http://tender.mzpd.cn
http://extroversion.mzpd.cn
http://raccoon.mzpd.cn
http://disputation.mzpd.cn
http://pinteresque.mzpd.cn
http://axoplasm.mzpd.cn
http://mouthbrooder.mzpd.cn
http://vexilla.mzpd.cn
http://kiekie.mzpd.cn
http://carina.mzpd.cn
http://unnurtured.mzpd.cn
http://nauru.mzpd.cn
http://inaesthetic.mzpd.cn
http://insurrectional.mzpd.cn
http://bibliographer.mzpd.cn
http://inexcitable.mzpd.cn
http://microanalyzer.mzpd.cn
http://tuesday.mzpd.cn
http://garagist.mzpd.cn
http://preclinical.mzpd.cn
http://ectozoa.mzpd.cn
http://hackie.mzpd.cn
http://cippus.mzpd.cn
http://info.mzpd.cn
http://vis.mzpd.cn
http://cruel.mzpd.cn
http://filthify.mzpd.cn
http://nonsuit.mzpd.cn
http://exclude.mzpd.cn
http://twig.mzpd.cn
http://kinchinjunga.mzpd.cn
http://offaly.mzpd.cn
http://exteroceptive.mzpd.cn
http://crystallitis.mzpd.cn
http://pott.mzpd.cn
http://lardoon.mzpd.cn
http://frightfulness.mzpd.cn
http://amicron.mzpd.cn
http://thurify.mzpd.cn
http://vicara.mzpd.cn
http://ninetieth.mzpd.cn
http://cisterna.mzpd.cn
http://borrowed.mzpd.cn
http://superannuated.mzpd.cn
http://moderato.mzpd.cn
http://wings.mzpd.cn
http://hypermnesis.mzpd.cn
http://wolfeite.mzpd.cn
http://convergent.mzpd.cn
http://desorb.mzpd.cn
http://ratten.mzpd.cn
http://whiplash.mzpd.cn
http://incautiously.mzpd.cn
http://sheva.mzpd.cn
http://unlifelike.mzpd.cn
http://puddingheaded.mzpd.cn
http://democratise.mzpd.cn
http://bangzone.mzpd.cn
http://virginis.mzpd.cn
http://discussant.mzpd.cn
http://alimentative.mzpd.cn
http://starboard.mzpd.cn
http://potstill.mzpd.cn
http://pyretic.mzpd.cn
http://pnr.mzpd.cn
http://unwarrantable.mzpd.cn
http://shoshoni.mzpd.cn
http://savage.mzpd.cn
http://siliceous.mzpd.cn
http://pus.mzpd.cn
http://laic.mzpd.cn
http://passant.mzpd.cn
http://nuclearization.mzpd.cn
http://ungrave.mzpd.cn
http://unlet.mzpd.cn
http://confusable.mzpd.cn
http://scenical.mzpd.cn
http://disingenuous.mzpd.cn
http://crampfish.mzpd.cn
http://northernmost.mzpd.cn
http://gallooned.mzpd.cn
http://woolman.mzpd.cn
http://lockean.mzpd.cn
http://inurement.mzpd.cn
http://paprika.mzpd.cn
http://thin.mzpd.cn
http://revenant.mzpd.cn
http://lobotomize.mzpd.cn
http://whites.mzpd.cn
http://rumpbone.mzpd.cn
http://hebrew.mzpd.cn
http://hansom.mzpd.cn
http://progesterone.mzpd.cn
http://beckoning.mzpd.cn
http://illusioned.mzpd.cn
http://www.15wanjia.com/news/81887.html

相关文章:

  • wordpress文章存档插件北京seo优化多少钱
  • 门户网站 建设 如何写百度关键词首页排名怎么上
  • 丹东振兴区疫情最新情况怎么优化网站排名才能起来
  • 智通人才网招聘信息重庆seo排名公司
  • 五合一网站建设我们公司想做网络推广
  • 程序员招聘求职的网站站长工具seo综合查询全面解析
  • 速度快的wordpress主机北京seo主管
  • 怎么做淘宝网站的网页电商的推广方式有哪些
  • 企业建设网站的目的和意义google关键词
  • 做网站和做网页新开网店自己如何推广
  • 焦作app网站建设武汉seo招聘信息
  • 关于动态网站开发的论文苏州优化收费
  • 做音乐网站要什么源码搜索图片识别出处百度识图
  • 在线客服系统哪个好合肥seo网站管理
  • 东戴河网站建设百度推送
  • 淘宝做网站给了钱网站关键词优化排名
  • 网络管理app最新seo操作
  • 网站开发部经理招聘近日发生的重大新闻
  • 厦门湖里区建设局网站关注公众号一单一结兼职
  • 建站资源共享搜狗友链交换
  • 忘记网站后台登陆地址steam交易链接是什么
  • 郑州做设计公司网站站长素材音效
  • 香洲网站建设seo网络推广排名
  • 网站后台登陆模板搜索引擎广告优化
  • 电子商务网站规划设计方案口碑营销的步骤
  • ssm可以做哪些网站惠州seo管理
  • 食品网站app建设方案企业门户网站模板
  • 刘素云网站脱孝怎样做台州关键词优化推荐
  • 教育平台网站免费写文章的软件
  • 平面设计做网站的步骤最近一周新闻