本文是笔者学习 logback 官网的笔记,主要内容为官网的翻译

logback 是由 log4j 的作者创建的一个全新的日志框架。致力于比其他的日志框架速度更快,占用空间更小,提供更多新的特性。

快速启动

1. 依赖

启动 logback 需要在类路径上添加以下 jar 包

  • logback-classic.jar
  • logback-core.jar
  • slf4j-api.jar

这里通过 maven 引入依赖

<!-- slf4j-api -->a
<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.32</version>
</dependency><!-- logback-classic -->
<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.4</version>
</dependency><!-- logback-core -->
<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>1.2.4</version>
</dependency>

2. 示例

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;public class HelloWorld {public static void main(String[] args) {Logger logger = LoggerFactory.getLogger("HelloWorld");logger.debug("Hello world.");}
}

使用 slf4j 的 LoggerFactory.getLogger() 方法,获取 Logger 对象,此方法可以传入字符串对象作为 logger 的名称,一般使用当前类的全限定类名,也可以使用 class 对象作为参数。然后利用 logger 对象的方法,即可打印出不同级别的日志。

在上述的示例中,没有直接引入 logback 的相关类或接口,而是使用 Slf4j 日志门面,作为日志入口。

控制台输出:

09:59:49.732 [main] DEBUG HelloWorld - Hello world.

输出格式是由 logback 默认的配置文件决定的,当没有找到默认配置文件时,logback 将向根日志记录器添加一个ConsoleAppender。

3. 内部状态

Logback可以使用内置的状态系统报告其内部状态的信息。可以通过一个名为 StatusManager 的组件访问在 logbakc 生命周期中发生的重要事件。StatusPrinter 可以打印内部信息。

import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.core.util.StatusPrinter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;public class StatusTest {public static void main(String[] args) {Logger logger = LoggerFactory.getLogger(StatusTest.class);logger.debug("status printer");LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();StatusPrinter.print(lc);}
}
10:13:48.166 [main] DEBUG StatusTest - status printer
10:13:48,137 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
10:13:48,137 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
10:13:48,137 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.xml]
10:13:48,140 |-INFO in ch.qos.logback.classic.BasicConfigurator@685f4c2e - Setting up default configuration.

日志显示,由于没有找到 logback-test.xmllogback.groovylogback .xml 配置文件,它使用默认配置(一个基本的 ConsoleAppender )来配置自己。

Appender 是一个可以被看作输出目标的类。Appender 适用于许多不同的目标,包括控制台、文件、Syslog、TCP套接字、JMS等。用户还可以根据自己的具体情况轻松创建自己的 Appenders。

注意,如果出现错误,logback 将在控制台上自动打印其内部状态。

注意,在上面的示例中, logback 通过调用 StatusPrinter.print() 方法来打印其内部状态。Logback的内部状态信息在诊断与 logback 相关的问题时非常有用。

logback快速启动相关推荐

  1. xp启动java设置_Windows XP快速启动经典六招

    Windows XP快速启动经典六招 第一招:修改启动参数 右键单击"我的电脑",选择"属性",再单击"高级"选项卡,单击"启动和 ...

  2. RasberryPi快速启动(适合首次接触树莓派学习者)

    你需要做以下的准备来启动你的Raspberry Pi : 连接线图例: 制作Raspberry Pi的SD卡 SD卡将包含Raspberry Pi的操作系统(操作系统是一种使Raspberry Pi工 ...

  3. Win7 开启显示快速启动工具栏,发送到快速启动右键菜单

    开启Win7快速启动栏 许多网友一定记得在 Windows 7 之前的 Windows 系统都有个快速启动(quick launch)区域. 比如 IE 浏览器.Windows Media Playe ...

  4. 977dh用vbs通过wsh创建桌面快捷方式,快速启动,修改ie主页的恶意代码 ...

    Dim WSHShell Set WshShell = WScript.CreateObject("WScript.Shell")   '获取一切脚本的开始 strDesktop ...

  5. android 快速启动,《Android APP可以有的东西》之显示篇:快速启动App

    前言 又有好久木有更新啦,快成咸鱼了. 早上看到一篇关于app快速启动的公众号文章,觉得应该全面了解一下这个东西,所以这篇文章就小小地实践一下下记录下来,内容并不多,demo都没有必要上,大家直接看代 ...

  6. 快速启动神器 Wox

    文章目录[点击展开](?)[+] wox(快速启动程序) wox官网:http://www.getwox.com/ 下载wox:https://github.com/Wox-launcher/Wox/ ...

  7. Istio-0.8.0在Minikube环境中快速启动Bookinfo示例

    Istio-0.8.0在Minikube环境中快速启动Bookinfo示例 之前发表了从零开始应用Istio--入门示例,使用的istio版本比较低,在0.8.0版本下发现很多命令不一样了,所以总结一 ...

  8. 创建 桌面、发送到...、快速启动栏、开始菜单、程序菜单、右键菜单 快捷方式...

    {=================================================================     功    能:             创建 桌面.发送到 ...

  9. 快速启动程序的工具软件都比不了Win+R-转

    真正的高手,是普通招式发挥出大威力,是根据情况选用最合适的招法,是从繁芜的武学中跳得出来.软件之道亦然.固然要选佳软,但更须善用.软件再好, 也是开发者之功:而运用之妙存乎一心,才是属于用户.在快速启 ...

最新文章

  1. Mac 安装 Jenkins
  2. IE安全系列:脚本先锋(4)
  3. 信息属性列表关键字 info.plist
  4. 【MFC】带下拉菜单的工具栏
  5. rss阅读器 java_RSS阅读器
  6. 高阶函数-sort()与sorted() (三分钟读懂)
  7. python实现生日祝福短信_Python实现好友生日提醒
  8. 京东发布《未来科技趋势白皮书》,101页详解5大关键技术(附PDF下载)
  9. npm下载axios
  10. 【KnockoutJS】KnockoutJS 绑定列表数据。实现表头合并,列生成,图片上传等功能
  11. arcgis oracle数据库失败,Oracle数据库之[ArcGIS]Oracle RAC下创建地理数据库失败的解决方法...
  12. snapchat_如何查看谁查看了Snapchat故事并对其进行了截图
  13. bug日志-win10任务栏卡死、无法加载
  14. 点对点语音通信(转)
  15. 拓嘉启远:定制类的商品如何处理退款
  16. (程序员/软件工程师/开发者)编程——计算机专业英语学习指引
  17. 【高效软件】推荐一款多功能PDF转换器,在线转换永久免费
  18. 浅显的mysql优化
  19. 苏宁从面试到入职历险记
  20. 澳禁止华为参与5G网络建设;锤子将编写自己的OS;国产处理器兆芯可运行Windows,已试制出Intel i5级处理器丨Q新闻...

热门文章

  1. i++ 和 ++i 一句话理解
  2. Recommended for you
  3. 【娱乐大闯关】C语言实现猜数字小游戏
  4. SQL Server数据库 附加数据库时出错。有关详细信息,请单击“消息”列中的超链接。
  5. c语言完全数简单编程,C语言实例 完全数
  6. ctfshow CRYPTO
  7. AutoRefresh插件:开启页面自动刷新!
  8. 2021中国奢华品报告:内地消费信心恢复至新冠疫情前水平,香港地区消费信心基本恢复...
  9. 四种常见的WordPress主题开发错误
  10. 【YouXue 1019】鹿死谁手