热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java中日志框架使用

原标题:Java中日志框架使用日志定义:在计算机领域,日志文件(logfile)是一个记录了发生在运行中的操作系统或其他软件中的事件的文件,或

原标题:Java中日志框架使用

日志定义:

在计算机领域,日志文件(logfile)是一个记录了发生在运行中的操作系统或其他软件中的事件的文件,或者记录了在网络聊天软件的用户之间发送的消息。

日志记录(Logging):是指保存日志的行为。最简单的做法是将日志写入单个存放日志的文件。

日志级别优先级:

ALL

日志框架的作用:

①:跟踪用户对系统访问,记录了系统行为的时间、地点、状态等相关信息,能够帮助我们了解并监控系统状态

②:进行统计

③:进行Debug,在系统产生问题时,能够帮助我们快速的定位、诊断并解决问题。

在发生错误或者接近某种危险状态时能够及时提醒我们处理

常用的日志框架类别简介:

Log4j Apache Log4j是一个基于Java的日志记录工具。它是由Ceki Glc首创的,现在则是Apache软件基金会的一个项目。 Log4j是几种Java日志框架之一。

Log4j 2 Apache Log4j 2是apache开发的一款Log4j的升级产品,Log4j被apache收购,升级,改为log4j2,框架改动很大,只是借用之名。

JCL (Jakarta Commons Logging) Apache基金会所属的项目,是一套Java日志接口,之前叫Jakarta Commons Logging,后更名为Commons Logging。

Slf4j(Simple Logging Facade for Java) 类似于Commons Logging,是一套简易Java日志门面,本身并无日www.yii666.com志的实现。

Logback 一套日志组件的实现(slf4j阵营)。

JUL (Java Util Logging),自Java1.4以来的官方日志实现,已被淘汰。

jboss-logging 等。

Spring框架内部使用的日志框架是 JCL (Jakarta Commons Logging)

Mybatis框架中使用的是 Log4j

Hibernate框架中使用的是 jboss-logging

Springboot底层使用的是 SLF4j + Logback

(Log4j,Logback,SLF4j都是同一个作者。)

问题引入:

市场上存在非常多的日志框架。每一种日志框架都有自己单独的API,要使用对应的框架就要使用其对应的API,这就大大的增加应用程序代码对于日志框架的耦合性。

解决思路:

为了解决上述问题,就在日志框架和应用程序之间架设一个沟通的桥梁,对于应用程序来说,无论底层的日志框架如何变,都不需要有任何感知。只要门面服务做的足够好,随意换另外一个文章来源地址29226.html日志框架,应用程序不需要修改任意一行代码,就可以直接上线。

在软件开发领域有这样一句话:计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决。而门面模式就是对于这句话的典型实践。

Logback文档免费。Logback的所有文档是全面免费提供的,不象Log4J那样只提供部分免费文档而需要用户去购买付费文档。Logback拥有更好的性能。

因为springboot底层使用的是 SLF4j + Logback,而且平时开发中使用频率最高的也是此组合,所以选择使用此组合进行日志框架的整合。

可能出现的问题:

如果我们直接暴力的排除其他日志框架,可能导致第三方库在调用日志接口时抛出 ClassNotFound 异常,这里就需要用到中间转换包

中间转换包说白了就是一种偷天换日的解决方案。比如 log4j-over-slf4j ,即 log4j -> slf4j 的转换包,这个库定义了与 log4j一致的接口(包名、类名、方法签名均一致),但是接口的实现却是对 slf4j 日志接口的包装,即间接调用了 slf4j 日志接口,文章来源站点https://www.yii666.com/实现了对日志的转发。

解决方案:

①:先排除其他日志包

②:在项目中引入 slf4j 的 转换包

③:在项目中引入 slf4j+logback 依赖+ logback的配置文件

在项目中引入 slf4j的 转换包


org.slf4j
log4j-over-slf4j
1.7.25


org.slf4j
jcl-over-slf4j
1.7.25


org.slf4j
jul-to-slf4j
1.7.25

在项目中引入slf4j+logback 依赖

org.slf4j
slf4j-log4j12
1.7.6


org.slf4j
slf4j-api
1.7.6


www.yii666.comt;ch.qos.logback
logback-classic
1.2.3

logback.xml配置文件





文章来源地址29226.html %-4relative [%thread] %-5level %logger{35} - %msg %n












参考链接:

slf4j官网

slf4j使用手册

logback官网

Commons Logging官网

来源于:Java中日志框架使用


推荐阅读
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 开发笔记:Java是如何读取和写入浏览器Cookies的
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Java是如何读取和写入浏览器Cookies的相关的知识,希望对你有一定的参考价值。首先我 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • php支持中文文件名
    2019独角兽企业重金招聘Python工程师标准大家可能遇到过上传中文文件名的文件,或者读取中文目录时不能读取,出现错误的情况这种情况是因为php自动将中文字符转成了utf8 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
author-avatar
安晗夕Brooke
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有