2017-05-25 63 views
1

我有3个类的Lib项目(ClassLib1.dll,ClassLib2.dll,ClassLib3.dll)。 一个Windows服务项目。 WindowsService1。每个项目的log4net配置C#

日志净是在配置文件中配置Windows服务项目和log4net的作为

<log4net> 
    <root> 
     <level value="all" /> 
     <appender-ref ref="RollingLogFileAppender" /> 
    </root> 
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
     <file value="C:\\XX\\Logs\\{App_Name}\\{App_Name_Log_File_}" /> 
     <countDirection value="1" /> 
     <datePattern value="yyyyMMdd'.log'" /> 
     <staticLogFileName value="false" /> 
     <appendToFile value="true" /> 
     <rollingStyle value="Composite" /> 
     <maxSizeRollBackups value="10" /> 
     <maximumFileSize value="10MB" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%utcdate{yyyy-MM-dd HH:mm:ss,fff} %-level [%thread] [%M %C] - %message%newline" /> 
     </layout> 
    </appender> 
    </log4net> 

Windows服务是指调用3个库项目。 如何为这3个class lib配置log4 net,以便我可以在下面的单独文件夹中有一个日志文件?

对于主窗口服务 C:\ XX \日志\ Win_Servive \ Win_Service_Log_File_.log 对于Class库1 C:\ XX \日志\ ClassLib1 \ ClassLib1_Log_File_.log 对于Class库2 C:\ XX \日志\ ClassLib2 \ ClassLib2_Log_File_.log 对于IIb类3 C:\ XX \日志\ ClassLib3 \ ClassLib3_Log_File_.log

回答

3

您可以通过在web.config文件中配置三个不同的附加目的地,然后装载三个不同的记录器实现这一目标按名称:

<appender name="Class1Appender" type="log4net.Appender.RollingFileAppender" additivity="false">....</appender> 
<appender name="Class2Appender" type="log4net.Appender.RollingFileAppender" additivity="false">....</appender> 
<appender name="Class3Appender" type="log4net.Appender.RollingFileAppender" additivity="false">....</appender> 

然后使用适当的记录:

ILog class1Log = LogManager.GetLogger("Class1Appender"); 
ILog class2Log = LogManager.GetLogger("Class2Appender"); 
ILog class3Log = LogManager.GetLogger("Class3Appender"); 
+0

谢谢娟,现在单独的文件夹中创建,但在每个日志文件中的日志语句是相同的。 – Prashant

+0

这只是配置。更改每个节点的节点属性,以便文件名是唯一的。 – JuanR

+0

谢谢琼! – Prashant

0

最终log4net的配置如下

<log4net> 
<root> 
    <level value="all" /> 
</root> 

<logger name="WinService"> 
    <appender-ref ref="WinService" /> 
</logger> 

<logger name="ClassLibrary1"> 
    <appender-ref ref="ClassLib1" /> 
</logger> 

<logger name="ClassLibrary2"> 
    <appender-ref ref="ClassLib2" /> 
</logger> 

<logger name="ClassLibrary3"> 
    <appender-ref ref="ClassLib3" /> 
</logger> 

<appender name="WinService" type="log4net.Appender.RollingFileAppender" additivity="false"> 
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
    <file value="C:\\XX\\Logs\\WinService\\WinService_" /> 
    <countDirection value="1" /> 
    <datePattern value="yyyyMMdd'.log'" /> 
    <staticLogFileName value="false" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Composite" /> 
    <maxSizeRollBackups value="10" /> 
    <maximumFileSize value="10MB" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%utcdate{yyyy-MM-dd HH:mm:ss,fff} %-level [%thread] [%M %C] - %message%newline" /> 
    </layout> 
</appender> 
<appender name="ClassLib1" type="log4net.Appender.RollingFileAppender" additivity="false"> 
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
    <file value="C:\\XX\\Logs\\ClassLib1\\ClassLib1_" /> 
    <countDirection value="1" /> 
    <datePattern value="yyyyMMdd'.log'" /> 
    <staticLogFileName value="false" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Composite" /> 
    <maxSizeRollBackups value="10" /> 
    <maximumFileSize value="10MB" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%utcdate{yyyy-MM-dd HH:mm:ss,fff} %-level [%thread] [%M %C] - %message%newline" /> 
    </layout> 
</appender> 
<appender name="ClassLib2" type="log4net.Appender.RollingFileAppender" additivity="false"> 
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
    <file value="C:\\XX\\Logs\\ClassLib2\\ClassLib2_" /> 
    <countDirection value="1" /> 
    <datePattern value="yyyyMMdd'.log'" /> 
    <staticLogFileName value="false" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Composite" /> 
    <maxSizeRollBackups value="10" /> 
    <maximumFileSize value="10MB" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%utcdate{yyyy-MM-dd HH:mm:ss,fff} %-level [%thread] [%M %C] - %message%newline" /> 
    </layout> 
</appender> 
<appender name="ClassLib3" type="log4net.Appender.RollingFileAppender" additivity="false"> 
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
    <file value="C:\\XX\\Logs\\ClassLib3\\ClassLib3_" /> 
    <countDirection value="1" /> 
    <datePattern value="yyyyMMdd'.log'" /> 
    <staticLogFileName value="false" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Composite" /> 
    <maxSizeRollBackups value="10" /> 
    <maximumFileSize value="10MB" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%utcdate{yyyy-MM-dd HH:mm:ss,fff} %-level [%thread] [%M %C] - %message%newline" /> 
    </layout> 
</appender>