[本地化]日志本地化

目录

  1. 概要
  2. 运行时日志
  3. 异常的国际化

 

 


国际化与本地化

概要

 

  • 本地化則是指當移植軟體時,加上與特定区域设置有關的資訊和翻譯文件的過程。
  • 國際化意味着產品有適用於任何地方的「潜力」;
  • 本地化則是為了更適合於「特定」地方的使用,而另外增添的特色。
  • 用一項產品來說,國際化只需做一次,但本地化則要針對不同的區域各做一次。
  • 這兩者之間是互補的,並且兩者合起來才能讓一個系統適用於各地
  • 程序的国际化和本地化
    1. 界面国际化
    2. 程序运行时、数据、日志等因为需要在不通国家或地区运行故需要本地化

 

运行时日志

 

 

本地化日志

 

skzr-slf4j-local使用

  1. 定义你的本地化日志信息MyMsg Enum:

     

    package org.skzr.logging;
    
    @BaseName(charset = "UTF-8", value = "org.skzr.logging.MsgLocalLog")
    public enum MyMsg {
            LOAD_FAILED,
            OTHERS;
    }
     

     

  2. 定义国际化文件org.skzr.logging.MsgLocalLog:

    #MsgLocalLog.properties
    LOAD_FAILED=[Developer][Configuration issues]international logger [{0}][{1}] load failed, text encoding[{2}]
    #MsgLocalLog_zh.properties
    LOAD_FAILED=[开发者][配置问题]初始化类[{0}]的国家化日志[{1}]失败, 文件格式[{2}]
     

     

  3. 代码中使用:
    ILocalLogger logger = LocalLoggerFactory.getLogger(getClass());
    logger.error(MsgLocalLog.LOAD_FAILED, "青蛙", "王子", new UnsupportedOperationException("我日"));
    
     

异常的国际化

  • 问题:怎样让自己的异常也具有本地化功能?
  • 解决方案:
    1. 因为后台本地化,实际上还牵涉到异常的本地化。
    2. 利用本地日志的基础构件,让异常消息也国际化。
    3. 调用方式,如:
      new MyRuntimeException(logger.getText(MyMsgEnum.MSG_KEY, "value(1)", "...", "value(n)"), e);
    4. 详见测试用例实现代码 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值