使用zeroc ice 中的icebox 的时候多服务会有多个服务实例,每个实例都要写日志文件,所以要配置多个日志文件区分开来,
类似这样 orderservice_1_20160101.log orderservice_2_20160101.log
看了java 的解决方案是可以提供一个变量来解决,我看log4net 就是没有找到这个东东但是看到了根据
loggername 去区分配置,这个不是动态的根据服务数量去生成日志文件,但是可以手工去配置也算是暂时解决了,但是不知道
如何去动态???
icebox 中的启动实例的时候可以传递变量值通过变量值去获取相应的loggername 的文件fileappender 这种方式是可行的具体配置如下:
Ice.Plugin.Logger.clr=Infrastructure:Infrastructure.Logger.LoggerPluginFactoryI IceService
log4net 的配置如下:
<!-- 日志文件部分log输出格式的设定 -->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="Logs\\Log_" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd'.txt'" />
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout">
<ConversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
</layout>
</appender>
<logger name="IceService">
<level value="WARN" />
<appender-ref ref="RollingLogFileAppender" />
</logger>