[SLF4J官方文档]本地化支撑-Java-优质IT资源分享社区

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

  [SLF4J官方文档]本地化支撑

楼主#
更多 发布于:2016-05-19 16:20

 [SLF4J官方文档]本地化支撑

原文地址

SLF4J-dev邮件列表上的一个评论产生了一种开源项目叫做CAL10N或编译器辅佐定位

正如其名所表明的,CAL10N专注于Java应用程序本地化/国际化的疑问。

在CALI0N上,附带SLF4J-EXT-1.7.21.jar的org.slf4j.cal10n包的顶部增加了一个十分薄的一层包以供给本地化的日志记载。

一旦你有一个上一个IMessageConveyor实例的句柄,你可以创立LocLoggerFactory

,这反过来又可以发明可以做本地化的日志记载的LocLogger实例。

让我们假定你现已在你的应用程序中界说本地化的音讯。

依照CAL10N的理念,你现已在枚举类型Production里为音讯声明晰keys 。

import

ch.qos.cal10n.LocaleData;import ch.qos.cal10n.Locale;import

ch.qos.cal10n.BaseName;@BaseName("production")@LocaleData( { @Locale("en_UK"),

@Locale("ja_JP") })public enum Production

 {APPLICATION_STARTED,APPLICATION_STOPPED,...DB_CONNECTION,DB_CONNECTION_FAILURE;}

假定你现已为不相同的区域“en_UK”和“Ja_JP创立了相应的包文件。

下面是“en_UK”区域的样本包。

APPLICATION_STARTED=Application {0} has started.APPLICATION_STOPPED=Application {0} has stopped....

然后,您可以实例化一个IMessageConveyor

,它写入到一个LogLoggerFactory ,经过称号实例和日志检索多个LogLogger,像下一个示例代码论述的相同。

import java.util.Locale;import

org.slf4j.cal10n.LocLogger;import org.slf4j.cal10n.LocLoggerFactory;import

ch.qos.cal10n.IMessageConveyor;import ch.qos.cal10n.MessageConveyor;public class

MyApplication {// create a message conveyor for a given localeIMessageConveyor

 messageConveyor = new MessageConveyor(Locale.UK);// create the

LogLoggerFactoryLocLoggerFactory llFactory_uk = new

LocLoggerFactory(messageConveyor);// create a locLoggerLocLogger locLogger =

llFactory_uk.getLocLogger(this.getClass());public void applicationStart()

{locLogger.info(Production.APPLICATION_STARTED, "fooApp");// ..}public void

applicationStop() {locLogger.info(Production.APPLICATION_STOPPED, "fooApp");//

...}}

假定资本包production_en_UK.properties存在,而且底层的日志结构敞开info级别日志,日志音讯将用英语[英国]输出。

请注意,

LogLogger是一个一般的SLF4J记载器,它有额定支撑本地化的办法。 关于那些需求一个枚举作为第一个参数的额定办法,

LogLogger遵从参数更换的Java约好规范,这个规范是由java.text.MessageFormat类界说的。

关于非本地化的日志,将一个字符串作为第一个参数, LogLogger如下{}约好,作为常规让一切org.slf4j.Logger完成。

如下例子论述了不同。

import ...;public class

MyApplication {IMessageConveyor  messageConveyor = new

MessageConveyor(Locale.UK);LocLoggerFactory llFactory_uk = new

LocLoggerFactory(messageConveyor);LocLogger locLogger =

llFactory_uk.getLocLogger(this.getClass());public void someMethod() {// follows

the MessageFormat conventionlocLogger.info(Production.APPLICATION_STARTED,

"fooApp");// follows the {} conventionlogLogger.info("Hello {}", name);...}}

优质IT资源分享社区为你提供此文。 [font=Tahoma  ]

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

java教程视频

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

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

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

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

本版相似帖子

游客