log4net Drukuj
Ocena użytkowników: / 0
SłabyŚwietny 
Wpisany przez Patryk yarpo Jar   
poniedziałek, 04 stycznia 2010 02:27

Ostatnio miałem okazję zapoznać się z ciekawym systemem do tworzenia logów z działania aplikacji. Nie chcę się tu wdawać w dyskusję, czy logi są przydatne, czy nie - o tym można pczytać na linkach zamieszczonych pod artykułem. Mowa tu o darmowym systemie log4net.

 

Aby móc zacząć pracować z log4net należy pobrać paczkę ze strony logging.apache.org/log4net/download.html.

Następnie załączyć plik dll do naszego projektu. Jeśli nie wiesz jak to zrobić, ten artykuł może Ci w tym pomóc.

Wyświetlanie w konsoli

using System;
using System.Collections.Generic;
using System.Text;
using log4net;


class Program
{
    static void Main(string[] args) 
    {
        log4net.Config.BasicConfigurator.Configure();
        ILog log = log4net.LogManager.GetLogger("example");
        log.Debug("To jest informacja przydatna do debugowania aplikacji");
        log.Info("Zwykle zdarzenie jakich mnostwo moze sie zdarzyc");
        log.Warn("Ostrzezenie, cos jest nie tak");
        log.Error("Wystapil blad");
        log.Fatal("Fatalny blad, dzielenie przez zero, sila Coriolisa dziala w druga strone");         
        Console.Read();  // abysmy mogli zobaczyc wyniki :P
    }
}

Po uruchomieniu tej aplikacji w wyniku powinno się pojawić:

89 [9] DEBUG example (null) - To jest informacja przydatna do debugowania aplikacji
141 [9] INFO example (null) - Zwykle zdarzenie jakich mnostwo moze sie zdarzyc
142 [9] WARN example (null) - Ostrzezenie, cos jest nie tak
142 [9] ERROR example (null) - Wystapil blad
143 [9] FATAL example (null) - Fatalny blad, dzielenie przez zero, sila Coriolisa dziala w druga strone

Zapisywanie do pliku xml

Aby móc zapisać do pliku xml musimy dokonać dwóch zmian (niżej znajdziesz filmik).

1. Dodać plik App.config z taką treścią:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
  </configSections>


  <log4net>
    <root>
      <level value="DEBUG" />
      <appender-ref ref="LogFileAppender" />
    </root>
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >
      <param name="File" value="C:\log.txt" />
      <param name="AppendToFile" value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="10MB" />
      <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>
</configuration>

Miejsce, gdzie ma zostać utworzony plik xml wskazujemy w tagu <param@File> w atrybucie value. Tu jest to C:\log.txt

2. Zmienić 1 linię w dotychczasowym kodzie:

///log4net.Config.BasicConfigurator.Configure();

log4net.Config.XmlConfigurator.Configure();

Wideotutorial stworzony na podstawie: