log4net in WPF

In questo articolo vengono fornite indicazioni / esempio su come impostare i contenuti dei files in una app di WPF, senza entrare nel dettaglio di tutti i particolari che sono accessibili direttamente dalla documentazione ufficiale (http://logging.apache.org/log4net/). Verrà pertanto fornito un esempio copy/paste/go da modificare in funzione delle specifiche esigenze…

File app.config:

<configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
  </configSections>
  <log4net>
    <root>
      <level value="DEBUG"/>
      <appender-ref ref="SmtpAppender"/>
      <appender-ref ref="LogFileAppender"/>
      <appender-ref ref="ColoredConsoleAppender"/>
    </root>
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="LogFile-log.txt"/>
      <param name="AppendToFile" value="true"/>
      <rollingStyle value="Size"/>
      <maxSizeRollBackups value="10"/>
      <maximumFileSize value="1MB"/>
      <staticLogFileName value="true"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger: %message%newline"/>
      </layout>
    </appender>
    <appender name="ColoredConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger: %message%newline"/>
      </layout>
    </appender>
    <appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
      <to value="mail@mail.com"/>
      <from value="log@sender.com"/>
      <subject value="Log Message ..."/>
      <smtpHost value="SMTP.com"/>
      <bufferSize value="512"/>
      <lossy value="true"/>
      <evaluator type="log4net.Core.LevelEvaluator">
        <threshold value="ERROR"/>
      </evaluator>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger: %message%newline"/>
      </layout>
    </appender>
  </log4net>

 

File AssemblyInfo.cs

...
using log4net;
using log4net.Config;
 
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
... 

 

File App.xaml.cs

...using System.Windows;
using log4net;
 
namespace GeStAv
{
    /// <summary>
    /// Interaction logic for App.xaml
    /// </summary>
    public partial class App : Application
    {
        private static readonly ILog Log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
         protected override void OnStartup(StartupEventArgs e)
        {
             log4net.Config.XmlConfigurator.Configure();
             base.OnStartup(e);
         }
     }
}

 

Maschere e classi

public partial class Window1 : Window
   {
       private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
 
       public Window1()
       {
           InitializeComponent();
           log.Info("FormLogIn Opened...");
       }
    }

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Non sono una macchina... *