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

Logback手冊 Chapter 1: Introduction

  

       翻译不周,多多包括

        ---------------------------------------------------------------------------------------切割线--------------------------------------------------------------------

Logback是继承自流行的log4j项目。

作者经验丰富。作为积累了十年日志系统设计的经验的结晶。Logback既快又比现有的日志系统短小精悍。

更夸张的说,LogBack提供了其它系统所不具有的独特又有用的特点。

Logback的三个包

slf4j-api.jar

logback-core.jar 

logback-classic.jar

先举个栗子:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class HelloWorld1 {

  public static void main(String[] args) {

    Logger logger = LoggerFactory.getLogger(HelloWorld1.class);
    logger.debug("Hello world.");

  }
}


21:38:46.328 [main] DEBUG chapter1.HelloWorld1 - Hello world.

上一个样例里。名为HelloWorld的logger,主函数调用logger的debug方法,记录了“hello World ”的信息。我们说这个主函数包括了一条DEBUG等级的日志输出。

这里你须要知道的是,根据LogBack的的默认策略,假设没有手动配置,LogBack将会对根logger加入一个所谓的ConsoleAppender,因此我们的程序将日志打印在了控制台。


---------------

Logback能够通过内置的状态系统来报告她的内部状态信息。这个是通过调用StatusPrinter的print方法来输出,我们直接过栗子:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.core.util.StatusPrinter;

public class HelloWorld2 {

  public static void main(String[] args) {
    Logger logger = LoggerFactory.getLogger("chapters.introduction.HelloWorld2");
    logger.debug("Hello world.");

    // print internal state
    LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
    StatusPrinter.print(lc);
  }
}


控制台输出结果:

22:34:56.229 [main] DEBUG chapters.introduction.HelloWorld2 - Hello world.
22:34:56,195 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
22:34:56,195 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
22:34:56,195 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.xml]
22:34:56,196 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Setting up default configuration.




因为缺失logback的配置文件logback-test.xml和lockback.xml(我会在接下来的章节中讨论),她採用了默认策略。也就是几个基础的ConsoleAppender。

Appender是一个决定日志输出目的类,它包含控制台、文件,系统日志。TCPSocket。JMS等等。

我们能够依据自己的情况来创建我们自己的Appender



提示一点:假设遇到错误(errors)Logbcak会自己主动的在控制台打印他的内部状态



总之,在程序使用日志分三步

1配置logback环境

2在每一个你想输出日志的类里。通过LoggerFactory的getLogger方法来生成一个Logger实例。用当前的类名,或者直接是这个类当做參数

3调用logger实例的方法来完毕日志输出。比方debug()。info(),warn()以及error(),她会依据Appender的配置来输出日志

相关文章:

  • [转]使用控件的RenderControl()方法导出Excel
  • 在移动端禁用长按选中文本功能
  • TNS-01190: The user is not authorized to execute the requested listener command
  • http://book.chinaz.com/database/sqlanywhere/ulcpzh9/ulcpzh9.htm
  • 基于Excel参数化你的Selenium2测试-xlrd
  • min-height和height
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 问题解答
  • 华为机试题-字符串分隔
  • 微软轻量级“代码生成器”—Repository Factory使用(下)
  • 《关于组织申报2017年度高新技术企业的通知》
  • 狼的故事11:以牙还牙
  • sql server 排序规则
  • windows server上联系人和用户的区别
  • tomcat 7下spring 4.x mvc集成websocket以及sockjs完全参考指南(含nginx/https支持)
  • php的引用
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 5、React组件事件详解
  • Create React App 使用
  • exif信息对照
  • JavaScript实现分页效果
  • JS数组方法汇总
  • PHP的类修饰符与访问修饰符
  • Python 反序列化安全问题(二)
  • Sass 快速入门教程
  • spring cloud gateway 源码解析(4)跨域问题处理
  • Web标准制定过程
  • 程序员该如何有效的找工作?
  • 电商搜索引擎的架构设计和性能优化
  • 简析gRPC client 连接管理
  • 前端临床手札——文件上传
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 用jquery写贪吃蛇
  • MPAndroidChart 教程:Y轴 YAxis
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • Semaphore
  • 阿里云服务器如何修改远程端口?
  • 扩展资源服务器解决oauth2 性能瓶颈
  • #考研#计算机文化知识1(局域网及网络互联)
  • (done) 两个矩阵 “相似” 是什么意思?
  • (二)springcloud实战之config配置中心
  • (强烈推荐)移动端音视频从零到上手(下)
  • (十)c52学习之旅-定时器实验
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (转)程序员技术练级攻略
  • (转)可以带来幸福的一本书
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • ./configure,make,make install的作用(转)
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .net MySql
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .net 中viewstate的原理和使用
  • .NET中的十进制浮点类型,徐汇区网站设计
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复