承接上一篇《Rhapsody集成引擎之日志篇(一)》,将对Rhapsody使用的log4j进行详细说明。
Jar包说明
1、Log4jLog4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
Rhapsody中使用到的核心log4j架包是:org.apache.log4j_1.2.17.jar
2、Slf4j
SLF4J是为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的loging APIs实现。Logging API实现既可以选择直接实现SLF4J接的loging APIs如:NLOG4J、SimpleLogger。也可以通过SLF4J提供的API实现来开发相应的适配器如Log4jLoggerAdapter、JDK14LoggerAdapter。
Rhapsody中使用到的扩展Slf4j架包是:org.slf4j.log4j12_1.7.7.jar
参考网址:
http://logging.apache.org/log4j/1.2/manual.html
Log4j组件三部曲
1、Loggers-日志优先级Log4j的日志优先级常用的有5种,如下表所示:
Log4j的日志优先级
上述日志级别的优先级关系是逐级递增的&#xff0c;即&#xff1a;TRACE <&#61; DEBUG 。
此外&#xff0c;Log4j有一个规则&#xff1a;只输出级别不低于设定级别的日志信息&#xff0c;假设Loggers级别设定为INFO&#xff0c;则INFO、WARN、ERROR和FATAL级别的日志信息都会输出&#xff0c;而级别比INFO低的DEBUG则不会输出。
注意:如果想要关闭日志功能&#xff0c;可以设置为OFF。
设置示例&#xff1a;
# The default logging setting. Logs to the Normal appender.log4j.rootLogger&#61;INFO,NormalAppender# Internal loggerslog4j.logger.CommunicationPoint&#61;INFOlog4j.logger.Route&#61;INFOlog4j.logger.Notification.System&#61;INFOlog4j.logger.Notification.Delivery&#61;INFO
其中Internal loggers的设置显示说明&#xff1a;该类及其子类的日志等级为INFO。
2、Appenders-输出目的地
顾名思义&#xff0c;输出目的地指的是可以将日志信息输出到指定的地方&#xff0c;常用的有控制台(Console)/文件(File)/Windows系统日志/JMS&#xff0c;甚至是远端Socket服务(Remote Socket Service)。
设置模板&#xff1a;
#className为Appender的类名log4j.appender.appenderName &#61; className#Option1以及OptionN为Appender的属性设置log4j.appender.appenderName.Option1 &#61; value1log4j.appender.appenderName.OptionN &#61; valueN
Appender类名
设置示例&#xff1a;
## Appenders# Normal Appenderlog4j.appender.NormalAppender&#61;org.apache.log4j.RollingFileAppenderlog4j.appender.NormalAppender.File&#61;log/log.txtlog4j.appender.NormalAppender.MaxBackupIndex&#61;9log4j.appender.NormalAppender.MaxFileSize&#61;5MBlog4j.appender.NormalAppender.encoding&#61;UTF-8
org.apache.log4j.RollingFileAppender是自定义NormalAppender的Appender类名。不同的Appender对应的属性/参数设置也是不同的&#xff0c;受制于篇幅&#xff0c;感兴趣的小伙伴可以自行搜索。
3、Layouts-输出格式
Log4j默认提供4中常用的输出格式&#xff0c;如下表所示&#xff1a;
Layout输出格式
设置模板&#xff1a;
#className为layout输出格式log4j.appender.appenderName.layout &#61;className#Option1 OptionN为不同输出格式的属性/参数设置log4j.appender.appenderName.layout.Option1 &#61; value1log4j.appender.appenderName.layout.OptionN &#61; valueN
设置示例&#xff1a;
## Appenders# Normal Appenderlog4j.appender.NormalAppender.layout&#61;org.apache.log4j.PatternLayoutlog4j.appender.NormalAppender.layout.ConversionPattern&#61;%d{DATE} [%-5p] {%t} (%c) %m%n
上述事例中的%d %t为格式化符号&#xff0c;详细含义如下表所示&#xff1a;
格式化符号
另外&#xff0c;还可以在%与格式字符之间加上修饰符来控制其最小长度、最大长度、和文本的对齐方式&#xff0c;类似于字符不全机制&#xff0c;比如&#xff1a;
c&#xff1a;指定输出category的名称&#xff0c;最小的长度是20&#xff0c;如果category的名称长度小于20的话&#xff0c;默认的情况下右对齐。
%-20c&#xff1a;"-"号表示左对齐。
%.30c&#xff1a;指定输出category的名称&#xff0c;最大的长度是30&#xff0c;如果category的名称长度大于30的话&#xff0c;就会将左边多出的字符截掉&#xff0c;但小于30的话也不会补空格。
本篇着重介绍了Rhapsody中使用的log4j配置详细说明&#xff0c;下一篇《Rhapsody集成引擎之日志篇(三)》将介绍使用外部抓包工具对通信点收发的数据进行底层监控&#xff0c;敬请期待。
【关于RHAPSODY】
Rhapsody集成引擎在国际市场被公认为顶级产品&#xff0c;多年之前就已成为新西兰医疗信息化市场广泛使用的且唯一属于本土研发的ESB产品。Rhapsody集成引擎则常年居于KLAS®排名前三&#xff0c;今年更是与LYNIATE旗下的另一款产品Corepoint共获KLAS®排名冠亚军(Corepoint已连续十一年获得KLAS®排名冠军)。Rhapsody集成引擎可以通过在各医疗信息系统间建立易用、可靠、 安全和可扩展的互操作性, 帮助客户快速实现基于医院信息平台的优质互联互通解决方案&#xff0c;提升医院信息工作建设水平&#xff0c;并为互联互通成熟度等级测评等各项评测工作的开展打下坚实的基础。
目前&#xff0c;Rhapsody在中国已有400多家医院用户(多数为三甲医院)&#xff0c;并呈现持续加速增长态势。另外&#xff0c;在国家医疗健康信息互联互通标准化成熟度评测方面&#xff0c;到去年为止&#xff0c;Rhapsody已助力近40家医院通过四级以上测评(其中3家通过了五级乙等评测)。
【关于LYNIATE】
LYNIATE是由两家在全球医疗信息互联互通领域久经考验的医疗信息化企业Rhapsody(原Orion Health Rhapsody)和Corepoint本着资源互补、优势共享的原则&#xff0c;共同创立的全新品牌。两个行业领先的品牌强强联手&#xff0c;将技术、人才和良好的客户关系动态地结合在一起&#xff0c;有机融合彼此的产品和服务&#xff0c;形成协同效应&#xff0c;可以为用户提供更好的产品、服务以及行业领先的医疗信息互联互通解决方案&#xff0c;创造更大的价值。
面向新一代医疗信息化发展需求&#xff0c;Rhapsody和Corepoint的通力合作&#xff0c;将为LYNIATE在医疗信息化领域高端产品的研发奠定坚实基础&#xff0c;提高其业内技术应用的领先性。新品牌的建立也将为其在中国医疗信息化行业的进一步发展提供强有力的技术支撑&#xff0c;领跑其所在的集成引擎细分市场&#xff0c;为中国医疗行业用户提供更高品质的产品和完备的服务保障。
www.Lyniate.cn – The new home of Corepoint and Rhapsody.
微信ID&#xff1a;Rhasody-APAC