简体   繁体   English

log4net中的第二个appender无法正常工作

[英]Second appender in log4net not working

I have the following in my web.config: 我在web.config中有以下内容:

<log4net>
    <appender name="mainLog"
       type="log4net.Appender.FileAppender">
      <file value="Log/Log.txt" />
      <appendToFile value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%newline%date [%thread] %-5level %logger - %message%newline" />
      </layout>
    </appender>
    <appender name="linqLog"
      type="log4net.Appender.FileAppender">
      <file value="Log/Log.txt" />
      <appendToFile value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%message%newline" />
      </layout>
    </appender>

    <logger name="MainLogger">
      <level value="ALL" />
      <appender-ref ref="mainLog" />
    </logger>
    <logger name="LinqLogger">
      <level value="ALL" />
      <appender-ref ref="linqLog" />
    </logger>
  </log4net>

The first appender called "mainLog" is working. 第一个称为“mainLog”的appender正在工作。 But the second one called "linqLog" is not. 但第二个名为“linqLog”的不是。 If I comment out "mainLog", then "linqLog" works. 如果我注释掉“mainLog”,那么“linqLog”就可以了。

In my Global.asax file I have the following: 在我的Global.asax文件中,我有以下内容:

protected void Application_Start(object sender, EventArgs e)
        {
            XmlConfigurator.Configure();
        }

Here is how I am calling them: 以下是我如何称呼他们:

public static void LogMessage(string message, string loggerName)
        {
            ILog log = LogManager.GetLogger(loggerName);
            log.Info(string.Format(message));
        }


LogMessage("My test message for MainLogger", "MainLogger");
LogMessage("My test message for LinqLogger", "LinqLogger");

Any ideas what I've done wrong? 我做错了什么想法?

Two file appenders cannot log to the same file, unless you specify a lockingModel 除非指定了lockingModel ,否则两个文件追加器无法登录到同一文件

<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />

See http://logging.apache.org/log4net/release/config-examples.html 请参阅http://logging.apache.org/log4net/release/config-examples.html

Log4net支持两个写入同一文件的appender,但您需要将锁定模型设置为“MinimalLock”。

<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM