怎么注册网站账号,一个数据库怎么做二个网站,网络销售型网站有哪些,查企业联系方式的app软件有哪些Logback介绍 Logback旨在成为流行的log4j项目的继任者。它由Ceki Glc设计#xff0c;他是log4j的创始人。它基于十年在设计工业级日志系统方 面的经验。结果产品#xff0c;即logback#xff0c;比所有现有的日志系统更快#xff0c;具有更小的占用空间#xff0c;有时差距…Logback介绍 Logback旨在成为流行的log4j项目的继任者。它由Ceki Gülcü设计他是log4j的创始人。它基于十年在设计工业级日志系统方 面的经验。结果产品即logback比所有现有的日志系统更快具有更小的占用空间有时差距非常大。同样重要的是logback提供了其他日志系统所缺乏的独特而实用的功能。 第一步
为了运行本章中的示例您需要确保在类路径上存在某些jar文件。请参阅设置页面以获取详细信息。
要求 logback-classic模块需要在类路径上存在slf4j-api.jar和logback-core.jar除此之外还需要存在logback-classic.jar。
logback-*.jar文件是logback分发包的一部分而slf4j-api-2.0.7.jar则与SLF4J一起提供是另一个项目。
让我们现在开始使用logback进行实验。
示例1.1基本的日志记录模板logback-examples/src/main/java/chapters/introduction/HelloWorld1.java
package chapters.introduction;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;public class HelloWorld1 {public static void main(String[] args) {Logger logger LoggerFactory.getLogger(chapters.introduction.HelloWorld1);logger.debug(Hello world.);}
}在chapters.introduction包中定义了HelloWorld1类。它首先导入SLF4J API中定义的Logger和LoggerFactory类具体在org.slf4j包下。
在main()方法的第一行变量logger被赋值为通过调用LoggerFactory类的静态getLogger方法获取的Logger实例。 这个logger被命名为“chapters.introduction.HelloWorld1”。main()方法继续调用该logger的debug方法并将Hello World作为参数传递。 我们说main()方法包含一个级别为DEBUG的日志语句消息为Hello world。
请注意上述示例未引用任何logback类。在大多数情况下就日志记录而言您的类只需要导入SLF4J类。 因此如果不是所有那么大部分甚至所有的类都将使用SLF4J API对logback的存在毫不知情。
您可以使用以下命令启动第一个样本应用程序即chapters.introduction.HelloWorld1
java chapters.introduction.HelloWorld1启动HelloWorld1应用程序将在控制台输出一条单行。由于logback的默认配置策略当找不到默认配置文件时 logback将向根 logger 添加一个 ConsoleAppender。
20:49:07.962 [main] DEBUG chapters.introduction.HelloWorld1 - Hello world.Logback可以使用内置的状态系统报告其内部状态。通过称为StatusManager的组件可以访问在logback生命周期期间发生的重要事件。 目前我们将通过调用StatusPrinter类的静态print()方法来指示logback打印其内部状态。
示例打印Logger状态logback-examples/src/main/java/chapters/introduction/HelloWorld2.java
package chapters.introduction;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 stateLoggerContext lc (LoggerContext) LoggerFactory.getILoggerFactory();StatusPrinter.print(lc);}
}运行HelloWorld2应用程序将产生以下输出
12:49:22.203 [main] DEBUG chapters.introduction.HelloWorld2 - Hello world.
12:49:22,076 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
12:49:22,078 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
12:49:22,093 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.xml]
12:49:22,093 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Setting up default configuration.Logback解释说在找不到logback-test.xml和logback.xml配置文件稍后会讨论时它使用其默认策略进行了配置该策略是一个基本的ConsoleAppender。 Appender是一个类可以看作是输出目的地。对于许多不同的目的地包括控制台、文件、Syslog、TCP套接字、JMS等等存在Appender。 用户也可以根据自己的特定情况轻松创建自己的Appender。
请注意在出现错误时logback会自动在控制台中打印其内部状态。
前面的例子比较简单。在大型应用程序中实际进行日志记录并不会有太大不同。一般的日志记录语句模式不会改变。只有配置过程会有所不同。 但是您可能希望根据自己的需求自定义或配置logback。logback的配置将在后续章节中进行介绍。
请注意在上面的例子中我们通过调用StatusPrinter的print()方法来指示logback打印其内部状态。logback的内部状态信息非常有用可以诊断与logback相关的问题。
启用应用程序日志记录的三个必要步骤如下
1.配置logback环境。您可以通过多种或更复杂的方式进行配置。稍后会进行讨论。
2.在每个希望进行日志记录的类中通过调用org.slf4j.LoggerFactory类的getLogger()方法获取Logger实例并将当前类名或类本身作为参数传递。
3.使用此Logger实例调用其打印方法即debug(), info(), warn()和error()方法。这将在配置的Appender上产生日志输出。
Logback的构建工具是Maven这是一款广泛使用的开源构建工具。
一旦您安装了Maven构建logback项目包括所有模块应该很容易只需从解压logback分发目录的目录中发出mvn install命令即可。Maven将自动下载所需的外部库。
logback分发包含完整的源代码因此您可以修改logback库的部分并构建自己的版本。您甚至可以重新分发修改后的版本只要遵守LGPL许可证或EPL许可证的条件即可。
有关在IDE下构建logback的信息请参见类路径设置页面的相关部分。