Trong bài viết này mình sẽ hướng dẫn các bạn sử dụng Log4net. Đây là bài viết “mì ăn liền” do các đoạn code trong bài này có thể dùng làm mẫu để sử dụng sau này, hoặc làm theo và có thể sử dụng ngay lập tức. Trong bài viết sau mình sẽ hướng dẫn chi tiết từng phần một để các bạn có thể hiểu và áp dụng từng thành phần mong muốn.

Các bước sử dụng Log4net:

  • Bước 1: Các bạn vào Nuget Packet Manager, tìm kiếm Log4net sau đó thêm vào trong project của mình.
  • Bước 2: Chúng ta có 2 sự lựa chọn. Một là thêm cấu hình cho Log4net vào một file riêng “log4net.config” (file này đặt tên tùy chọn). Hai là thêm trực tiếp vào App.config (hiện tại mình đang code WPF).
  • Bước 3 – Cách 1:
    Các bạn tạo file “log4net.config” vào project. Thay đổi properties (chuột phải vào file log4net.config, chọn Properties), mục Copy to Output Directory thành Copy if newer. Sau đó chỉnh sử file config như sau:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <log4net>
        <root>
            <level value="ALL" />
            <appender-ref ref="file" />
        </root>
        <appender name="file" type="log4net.Appender.RollingFileAppender">
            <file value="myapp.log" />
            <appendToFile value="true" />
            <rollingStyle value="Size" />
            <maxSizeRollBackups value="5" />
            <maximumFileSize value="10MB" />
            <staticLogFileName value="true" />
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%date [%thread] %level %logger - %message%newline" />
            </layout>
        </appender>
    </log4net>
</configuration>
  • Bước 3 – Cách 2:
    Trong trường hợp thêm trực tiếp vào file App.config thì chúng ta cấu hình file App.config như sau:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
    </configSections>
    <log4net>
        <root>
            <level value="ALL" />
            <appender-ref ref="MyAppender" />
            <appender-ref ref="RollingFileAppender" />
        </root>
        <appender name="MyAppender" type="log4net.Appender.ConsoleAppender">
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%date %level %logger - %message%newline" />
            </layout>
        </appender>
        <appender name="MyFileAppender" type="log4net.Appender.FileAppender">
            <file value="application.log" />
            <appendToFile value="true" />
            <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%date %level %logger - %message%newline" />
            </layout>
        </appender>
        <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
            <file value="rolling.log" />
            <appendToFile value="true" />
            <rollingStyle value="Size" />
            <maxSizeRollBackups value="5" />
            <maximumFileSize value="10MB" />
            <staticLogFileName value="true" />
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%date [%thread] %level %logger - %message%newline" />
            </layout>
        </appender>
    </log4net>
    <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
</configuration>
  • Bước 4:
    Thêm vào cuối file AssemblyInfo.cs, trong thư mục Properties như sau:

Đối với cách 1:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

Đối với cách 2:

[assembly: log4net.Config.XmlConfigurator(Watch = true)]
  • Bước 5: Sử dụng Log4net:
    – Khai báo biến log:

Cách khai báo dùng chung cho mọi class:

private static readonly ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

Cách khai báo riêng cho từng class được khai báo:

private static readonly ILog log = LogManager.GetLogger(typeof("class name").Name);

– Sử dụng:
Có 4 loại log: Debug, Info, Warning, Error, Fatal. Ví dụ sử dụng hoàn chỉnh:

class Program {
    private static readonly ILog log = LogManager.GetLogger (MethodBase.GetCurrentMethod ().DeclaringType);

    static void Main (string[] args) {
        log.Info ("This is info log.");
        Console.WriteLine ("Hello Log4Net.");
        Console.ReadKey ();
    }
}

Các bạn có thể download project mẫu ở đây: Log4netTest.rar