《SLF4J官方文档》SLF4J搬迁东西-Java-优质IT资源分享社区

admin
管理员
管理员
  • UID1
  • 粉丝29
  • 关注4
  • 发帖数581
  • 社区居民
  • 忠实会员
  • 原创写手
阅读:183回复:0

  《SLF4J官方文档》SLF4J搬迁东西

楼主#
更多 发布于:2016-05-21 23:10

《SLF4J官方文档》SLF4J搬迁东西

 SLF4J搬迁者

SLF4J搬迁者是一个很小的Java东西,用于将Java源文件从Jakata Commons

Logging(JCL)搬迁到SLF4J。它也能将文件从log4j搬迁到SLF4J,或许从java.util.logging API到SLF4J。

SLF4J搬迁者包含一个独立的jar文件,能够像独立运营的java运用一样运转。指令如下:

Java –jar slf4j-migrator-1.7.21.jar

一旦运用运转了,一个像下面的窗口会显现:

此运用的运用应该是一目了然的。请注意搬迁东西仅仅原地更换java文件,这意味着将没有已修正文件的备份。在运用SLF4J搬迁者前,你有义务备份你的文件。

约束

SLF4J搬迁者作为一个简略的东西,用于帮你将运用JCL,log4j或JUL的项目文件搬迁到SLF4J。它只能进行根本的变换过程。本质上来说,它将更换恰当的导入行(import

lines)和日志器声明(logger declarations)。

MyClass是个运用JCL的简略类,更换前如下:

package some.package;import

org.apache.commons.logging.Log;import

org.apache.commons.logging.LogFactory;public MyClass {  Log logger =

LogFactory.getLog(MyClass.class); public void someMethod() { logger.info("Hello

world"); }}

搬迁后如下:

package some.package;import

org.slf4j.Logger;import org.slf4j.LoggerFactory;public MyClass {  Logger logger

= LoggerFactory.getLogger(MyClass.class); public void someMethod() {

logger.info("Hello world"); }}

虽然变换规则很根本,但SLF4J搬迁者仍能够大大减轻java项目从JCL到SLF4J搬迁的繁重作业。从log4j到SLF4J,或从JUL到SLF4J的搬迁规则是相似的。

一般约束

•生成脚本不会被修正

您的Ant /

Maven/Ivy生成脚本需求手动修正为运用SLF4J,而不是JCL或log4j。

•只要支撑String类型的音讯

假如您的日志声明的包含非字符串目标作为其仅有的参数,你将不得不在目标上手动增加一个toString()办法调用。

例如:

logger.debug(new Object());

已被手动从头写为

logger.debug(new Object().toString());

•不支撑FATAL等级。

你有必要将它们手动变换。

此约束不被视为非常严峻的,因为一般有极少量的日志声明承载FATAL等级。

•假如一个办法声明在同一行的多个日志器,变换将是不完整的。 例:

public void someMethod(Log l1, Log l2) { ... }will

be converted as  public void someMethod(Log l1, Logger l2) { ... }

从log4j的搬迁时约束

•NDC句子坚持原样

因为NDC不支撑SLF4J,搬迁者不能准确处理NDC句子。 你有必要手动进行搬迁到MDC。

相同,因为一般很少NDC句子,即便在大型项目中此约束不被视为严峻。

请注意,相反,NDC,因为SLF4J支撑这么的句子MDC陈述准确搬迁。

•调用PropertyConfigurator或DomConfigurator无法搬迁,因为他们没有SLF4J对应项。

从JUL搬迁时的约束

•java.util.logging.Logger调用finest()

finer()或finest()办法都保存原样。

鉴于finest()

finer()或finest()调用能够映射到两个trace()或debug()调用在SLF4J,不可能猜出用户期望怎么这些调用映射。

•一切匹配的字符串“.severe(”会由字符串“.error(”更换,不带任何上下文剖析。相同地,一切的字符串匹配“.warning(”是由“.warn(”所替代。

因为匹配/更换操作不是依据语境更改的,假如你的代码包含了一个名为”severe” 或

“warning”,,那么搬迁的成果将具有编译过错的办法。 走运的是,这么的过错应该是罕见的,易于识别的。

•在定义下面的办法调用java.util.logging.Logger类需求手动搬迁:log,logp,logrb,entering,exiting。

优质IT资源分享社区为你提供此文。

本站有大量优质Java教程视频,资料等资源,包含java基础教程,高级进阶教程等等,教程视频资源涵盖传智播客,极客学院,达内,北大青鸟,猎豹网校等等IT职业培训机构的培训教学视频,价值巨大。欢迎点击下方链接查看。

java教程视频

优质IT资源分享社区(www.itziyuan.top)
一个免费,自由,开放,共享,平等,互助的优质IT资源分享网站。
专注免费分享各大IT培训机构最新培训教学视频,为你的IT学习助力!

!!!回帖受限制请看点击这里!!!
!!!资源失效请在此版块发帖说明!!!

[PS:按 CTRL+D收藏本站网址~]

——“优质IT资源分享社区”管理员专用签名~

本版相似帖子

游客