下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 SLF4J-1.7

SLF4J-1.7.2用户指南(中文版)

SLF4J-1.7

瓜姐Sandyr8
2019-05-26 0人阅读 举报 0 0 暂无简介

简介:本文档为《SLF4J-1.7doc》,可适用于IT/计算机领域

译自:翻译人:qqcomSLFJ用户指南SLFJ全称为SimpleLoggingFacadeforJava(简单日志门面)作为各种日志框架的简单门面或者抽象包括javautillogging,logj,logbackSLFJ允许用户在部署期间加入自己希望使用的日志系统。SLF能够实现这些这些功能必须依赖于一个jar包名为slfjapijar从如果在类加载路劲上没有找到任何绑定则slfj的默认实现为无操作。从Logger接口提供了接受可变参数的打印方法替换以前的object参数。这个改变意味着SLFJ需要JDK需要或以上的版本支持。java编译器内部会把可变参数部分转变为object数组因此Logger接口编译后的结果在和看来并没有什么区别。HelloWorld依照编程传统这个例子展示了一个简单方式来使用SLFJ输出"HelloWorld"首先获得一个名为"HelloWorld"的logger。这个logger接着打印日志消息"HelloWorld"。importorgslfjLoggerimportorgslfjLoggerFactorypublicclassHelloWorld{publicstaticvoidmain(Stringargs){Loggerlogger=LoggerFactorygetLogger(HelloWorldclass)loggerinfo("HelloWorld")}}要运行这个例子首先需要下载slfj依赖包,然后解压将slfjapijar加入classpath中。编译运行这个例子会在控制显示下面信息:SLFJ:Failedtoloadclass"orgslfjimplStaticLoggerBinder"SLFJ:Defaultingtonooperation(NOP)loggerimplementationSLFJ:See#StaticLoggerBinderforfurtherDetails出现这个警告信息的原因是在classpath中找不到任何slfj的实现绑定。一旦将某个实现绑定加入classpath中这个警告消息就不再出现。假设你将slfjsimplejar加入此时你的classpath包含:slfjapijarslfjsimplejar此时在编译运行HelloWorld将会在控制台输出这样的结果:mainINFOHelloWorldHelloWorld典型的使用模式下面同样的代码展示了SLFJ的典型使用模式。注意第行{}占位符的使用。更多详细内容请查看FAQ中的问题"Whatisthefastestwayoflogging":importorgslfjLogger:importorgslfjLoggerFactory::publicclassWombat{: : finalLoggerlogger=LoggerFactorygetLogger(Wombatclass): Integert: IntegeroldT:: publicvoidsetTemperature(Integertemperature){:  :  oldT=t    :  t=temperature::  loggerdebug("Temperaturesetto{}Oldtemperaturewas{}",t,oldT)::  if(temperatureintValue()>){:   loggerinfo("Temperaturehasrisenabovedegrees"):  }: }:}在部署阶段绑定某个日志框架前面提到过SLFJ支持多种日志框架。SLFJ发行包中自带几个用于“SLFJ绑定”的jar文件,每种绑定对应一种支持的日志框架。slfjlogjjar用于绑定版的logj,这是一个广泛使用的日志系统当然你还要把logj包加到classpath中slfjjdkjar用于绑定javautillogging,作为JDK的loggingslfjnopjar用于绑定NOP,不做任何操作slfjsimplejar用于绑定simple的实现,所有的打印会响应到Systemerr只有INFO或者更高的级别会被打印这个绑定在小型应用中非常有用。slfjjcljar用于绑定JakartaCommonsLogging这个绑定会使得SLFJ的日志功能委托JCL来完成还有除了SLFJ项目以外提供的绑定包例如logback本身就实现了SLFJ。Logback的chqoslogbackclassicLogger类实直接实现了SLFJ的orgslfjLogger接口。因此结合logback使用SLFJ节省很多内存和计算的开销。要切换日志系统只需在classpath上替换slfj的绑定则可。例如你要从javautillogging切换到logj只需要把slfjjdkjar替换为slfjlogjjarSLFJ不依赖于任何的特殊类加载器。实际上每个SLFJ绑定都是在编译阶段使用且指定唯一一种日志框架。例如slfjlogjjar绑定在编译阶段绑定使用logj。在你的代码中除了slfjapijar意外你只能在classpath中加入一种绑定。不要添加超过个绑定。下面是这张图解释了总体的思路。(underlying表示直接实现SLFJ的接口adaptation表示通过适配器实现SLFJ的接口)SLFJ的接口和它的各种适配器是非常简单的。大多数熟悉java语言的开发人员能够在一个小时内阅读和完全理解这些代码。因为SLFJ没有使用或者说没有直接访问类加载器所以关于类加载器的知识不是必须的。因此SLFJ没有类加载器和内存泄露的问题在方面commonlogging就相形见拙了。有了简单明了的SLFJ接口和部署模型对于一个新的日志系统开发人员可以容易的开发SLFJ的绑定。库广泛使用的一些组件会在他们的代码中使用SLFJ接口这是以避免强制用户使用某一种日志框架。因此最终用户可以再部署阶段选择自己喜欢的日志框架并在classpath中加入对应框架的slfj绑定包。以后还可以通过替换一个新的slfj绑定来使用另一种日志框架。这种方案被证明是简单且健壮的。在版本中如果在classpath中没有找到绑定slfjapi将会默认忽略所有打印请求。以前则会因为缺少orgslfjimplStaticLoggerBinder类而抛出一个NoClassDeFoundError的错误从SLFJ器则会发出一个唯一一次警告信息说明缺少绑定并且往后的所有答应请求会被忽略。举个实例Wombat框架依赖于SLFJ日志功能。为了避免强制最终用户使用某种日志框架Wombat的发布包中包含了slfjapijar且不包含任何绑定包。即便用户在classpath上缺少任何SLFJ绑定包Wombat依然能工作。只有在用户决定开启使用日志功能的时候他才需要安装绑定某种日志框架的SLFJ绑定包。项目中的日志功能依赖请注意任何可嵌入使用的组件例如库或者框架都不应该声明某个SLFJ绑定的具体依赖只能声明依赖于slfjapi有关SLFj在可嵌入组件中使用的在FAQ里有相关讨论loggingconfiguration,dependencyreductionandtesting基于maven的传递依赖规则对于“一般”项目(非库或者框架)来说声明日志功能的依赖可以通过一条依赖声明完成。LOGBACKCLASSIC如果你希望使用logbackclassic作为日志框架。你只需在pomxml文件中声明"chqoslogback:logbackclassic"依赖(如下所示)。此外logbackclassicjar依赖会自动把slfjapijar加载到你的项目。不过明确的声明slfjapijar的依赖并没有错也避免MAVEN默认的相关版本信息不如你所意。<dependency><groupId>chqoslogback<groupId><artifactId>logbackclassic<artifactId><version><version><dependency>LOGJ如果你希望使用logj作为日志框架。你只需在pomxml文件中声明"orgslfj:slfjlogj"依赖(如下所示)。此外slfjlogjjar,依赖会自动把slfjapijar加载到你的项目。不过明确的声明slfjapijar的依赖并没有错也避免MAVEN默认的相关版本信息不如你所意。<dependency><groupId>orgslfj<groupId><artifactId>slfjlogj<artifactId><version><version><dependency>JAVAUTILLOGGING如果你希望使用javautillogging作为日志框架。你只需在pomxml文件中声明"orgslfj:slfjjdk"依赖(如下所示)。此外slfjjdkjar,依赖会自动把slfjapijar加载到你的项目。不过明确的声明slfjapijar的依赖并没有错也避免MAVEN默认的相关版本信息不如你所意。

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/7

SLF4J-1.7

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利