Mule有一个带有类别字段的日志记录组件。
如果使用此字段,则记录器如下所示
INFO 2015-07-20 14:37:14,566 [[api.customers.authentication.v1505].HTTP_Listener_Configuration.worker.01] entrance: CorrelationID:3b012970-2e88-11e5-8f2c-74a920524153, Message:/api/customers/authentication/1 flow invoked
INFO 2015-07-20 14:37:14,567 [[api.customers.authentication.v1505].HTTP_Listener_Configuration.worker.01] org.mule.api.processorLoggerMessageProcessor: CorrelationID:3b012970-2e88-11e5-8f2c-74a920524153, Message:Message received in impl_validateCustomerSub_Flow
在上面的记录器中,第一个记录器有一个名为entrance的自定义类别,下一个只是默认类别
我的问题是,如果有用,可以有人举几个例子 ? ...如何使用它来更好地组织记录器...我知道它有一个原因,但不知道如何使用它。
答案 0 :(得分:3)
logger组件中的类别,可以在log4j.property文件中使用它来记录不同的日志。
示例:在要求中。假设我们需要捕获不同类别级别的多个细节:有效负载和时间戳详细信息(我们不希望将所有INFO详细信息记录在同一个中,并且它会变得混乱)。
我们可以使用类别区分如下。
在流程(示例)中,将两个记录器保持在下一个,同一级别(INFO)旁边,但在类别名称(Hello,audit)中不同。只有特定日志将记录在指定位置(在log4j中,为两者提供两个不同的位置)。在一个位置(您只能看到有效负载),而另一个位置只能看到TimeStamp。
<logger message="****Capture Payload: #[message.payload]****" level="INFO" doc:name="Logger" category="hello"/>
<logger message="**Capture TimeSatmp:#[server.dateTime.getTime()]***" level="INFO" doc:name="Logger" category="audit"/>
需要相应地更新log4j属性文件。
#Category:hello Info
log4j.category.hello=INFO,LoggerInfo
log4j.additivity.hello=false
log4j.appender.hello=org.apache.log4j.RollingFileAppender
log4j.appender.hello.File=c:/tmp/logger/hello.log
log4j.appender.hello.MaxFileSize=4MB
log4j.appender.hello.MaxBackupIndex=10
log4j.appender.hello.layout = org.apache.log4j.PatternLayout
log4j.appender.hello.layout.ConversionPattern=%p %t %c - %m%n
#Category:audit Info
log4j.category.audit=INFO,audit
log4j.additivity.audit=false
log4j.appender.audit=org.apache.log4j.RollingFileAppender
log4j.appender.audit.File=c:/tmp/logger/audit.log
log4j.appender.audit.MaxFileSize=4MB
log4j.appender.audit.MaxBackupIndex=10
log4j.appender.audit.layout = org.apache.log4j.PatternLayout
log4j.appender.audit.layout.ConversionPattern=%p %t %c - %m%n
可以根据需求以多种方式使用(仅举例说明上面给出)。不确定这是如何在MMC中发挥作用的。