0

经过很多问题,最后我设法为我的窗口服务配置了 log4net。

我对它很陌生,今天我开始配置它。我有以下这些疑问。

1)我需要在多个程序集中使用它。假设我有一个程序集“A”,它作为引用添加到程序集“B”中,这是我的主要程序集,我有 log4net 的引用。我需要记录程序集“A”和“B”。

2) 我的应用程序是多线程的并且使用了很多线程。那么 log4net 是线程安全的吗?

3)我在我的 app.config 中使用下面的配置。我不太清楚它有什么用。但我不想使用不必要的参数。

<log4net>
     <root>
       <level value="DEBUG"/>
       <appender-ref ref="LogFileAppender"/>
     </root>
     <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
       <param name="File" value="C:\logs\log.txt"/>
       <param name="AppendToFile" value="true"/>
       <rollingStyle value="Size"/>
       <maxSizeRollBackups value="10"/>
       <maximumFileSize value="100KB"/>
       <staticLogFileName value="true"/>
       <layout type="log4net.Layout.PatternLayout">
         <param name="ConversionPattern" value="%-5p%d{yyyy-MM-dd hh:mm:ss} – %m%n"/>
       </layout>
     </appender>   
</log4net>
4

3 回答 3

1

<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />在 appender 部分下使用。我将提高日志记录性能。

log4net 是线程安全的。

<maximumFileSize value="10MB" /> //For 100 Kb configuration there will be lot of files.

<datePattern value="_yyyyMMdd" />//它将提示记录器在每个日期创建一个新文件。

为 Logger 创建一个静态类,并从您要使用的每个程序集中调用静态函数。

日志记录示例类:

public static class Logger
    {
        static Logger()
        {
            XmlConfigurator.Configure();
        }

        public static void Log()
        {
            string methodName = new System.Diagnostics.StackFrame(1, true).GetMethod().Name;
            string moduleName = new System.Diagnostics.StackFrame(1, true).GetMethod().ReflectedType.FullName;

            var appLog = LogManager.GetLogger(loggername);
            appLog.Error(...);

        }
    }
于 2012-04-30T08:16:24.483 回答
0
  1. 这不是问题;只需ILog在程序集 B 中照常使用。
    只需确保Configure()在应用程序的生命周期中调用一次。
  2. 是的。
  3. 我建议您熟悉 log4net。一个简单的谷歌搜索或查看文档应该可以解决问题。
于 2012-04-30T07:55:19.297 回答
0
 <root>
       <level value="DEBUG"/>
       <appender-ref ref="LogFileAppender"/>
     </root>

它只会在调试模式下登录,所以在配置中输入以下条目:

 <root>
       <level value="ALL"/>
       <appender-ref ref="LogFileAppender"/>
     </root>
于 2012-04-30T08:19:59.380 回答