Search code examples
wpflog4netlog4net-configuration

What is wrong with this log4.net configuration?


It sure looks like it should work. It throws no errors, steps through every line of code, but produces no log file. What is wrong here? It should produce a log file in the directory of the appender name, but no log file ever generates.

log4net.xml file:

<configuration>
  <log4net debug="true">
    <appender name ="task_appender" type="log4net.Appender.RollingAppender">
      <file value="C:\Users\ryan\Documents\Visual Studio 2017\Workout Project\GPWorkouts\blablabla.txt"></file>
      <appendToFile value="true"/>
      <rollingStyle value="Size"/>
      <maxSizeRollBacks value="2"/>
      <maximumFileSize value="5000KB"/>
      <staticLogFileName value="true"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"></conversionPattern>
      </layout>   
    </appender>

    <root>
      <level value="DEBUG"/>
    </root>

    <logger name="Task">
      <level value="DEBUG"/>
      <appender-ref ref="task_appender"/>
    </logger>

  </log4net>
</configuration>

application file:

 public partial class MainWindow : Window
    {

        static protected ILog log = LogManager.GetLogger("Task");

        static void log4net_demo() 
        {
            FileInfo fi = new FileInfo("log4net.xml");
            log4net.Config.XmlConfigurator.Configure(fi);
            log4net.GlobalContext.Properties["host"] = Environment.MachineName;
        }

        public MainWindow()
        {
            InitializeComponent();

            log4net_demo();
            log.Info("This is the information log level");
            log.Debug("This is the debugging log level");
            log.Error("This is the error log level");
            log.Fatal("This is the fatal log level");


        }

Solution

  • Looks like some typo in your log4net config, the correct appender type name is log4net.Appender.RollingFileAppender

    In your xml, it was given as log4net.Appender.RollingAppender

    Here is the corrected xml

    <configuration>
      <log4net debug="true">
        <appender name ="task_appender" type="log4net.Appender.RollingFileAppender">
          <file value="C:\Users\ryan\Documents\Visual Studio 2017\Workout Project\GPWorkouts\blablabla.txt"></file>
          <appendToFile value="true"/>
          <rollingStyle value="Size"/>
          <maxSizeRollBacks value="2"/>
          <maximumFileSize value="5000KB"/>
          <staticLogFileName value="true"/>
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"></conversionPattern>
          </layout>   
        </appender>
    
        <root>
          <level value="DEBUG"/>
        </root>
    
        <logger name="Task">
          <level value="DEBUG"/>
          <appender-ref ref="task_appender"/>
        </logger>
    
      </log4net>
    </configuration>