[本地化]日志本地化
目录
- 概要
- 运行时日志
异常的国际化
?
?
国际化与本地化
概要
?
- 本地化是指移植,加上特定区域设置有的和翻文件的程。化意味着品有用於任何地方的「潜力」;本地化是了更合於「特定」地方的使用,而另外增添的特色。用一品,化只需做一次,但本地化要不同的域各做一次。者之是互的,且者合起才能一系用於各地程序的国际化和本地化
- 界面国际化程序运行时、数据、日志等因为需要在不通国家或地区运行故需要本地化
?
运行时日志
?
slf4j支持本地化详见:Localization support
cal10n
?
本地化日志为手痒,重新做了个:slf4j-local持续集成
我的设计slf4j-local
本地化日志实现设计.dia
参考cal10n设计的本地化日志设计:
实际类图:
?定义你的本地化日志信息MyMsg Enum:
?
package org.skzr.logging;@BaseName(charset = "UTF-8", value = "org.skzr.logging.MsgLocalLog")public enum MyMsg { LOAD_FAILED, OTHERS;}??
定义国际化文件org.skzr.logging.MsgLocalLog:
#MsgLocalLog.propertiesLOAD_FAILED=[Developer][Configuration issues]international logger [{0}][{1}] load failed, text encoding[{2}]#MsgLocalLog_zh.propertiesLOAD_FAILED=[开发者][配置问题]初始化类[{0}]的国家化日志[{1}]失败, 文件格式[{2}]??
代码中使用:ILocalLogger logger = LocalLoggerFactory.getLogger(getClass());logger.error(MsgLocalLog.LOAD_FAILED, "青蛙", "王子", new UnsupportedOperationException("我日"));?异常的国际化- 问题:怎样让自己的异常也具有本地化功能?解决方案:
- 因为后台本地化,实际上还牵涉到异常的本地化。利用本地日志的基础构件,让异常消息也国际化。调用方式,如:
new MyRuntimeException(logger.getText(MyMsgEnum.MSG_KEY, "value(1)", "...", "value(n)"), e);详见测试用例,实现代码?