DUICUO

オープンソースのログ フレームワーク log4net の簡単な概要: アプリケーションのログ情報を柔軟に記録するための強力なツールです。

Log4netは、アプリケーション情報をログに記録するための柔軟なメカニズムを提供する、広く使用されているオープンソースのログ記録フレームワークです。Log4netは、Apache Software Foundationが発行するApache License 2.0に基づいてリリースされており、無料で使用および改変できます。

log4netを使用すると、アプリケーション内の異なるイベントを異なるログレベルに記録できます。例えば、デバッグ情報はデバッグログに、エラー情報はエラーログに書き込むことができます。これらの異なるログレベルにより、アプリケーションのパフォーマンスの追跡と管理が容易になります。log4netは、コンソール、ファイル、データベースなど、さまざまなログ出力方法をサポートしています。ログ出力方法は設定ファイルで指定できるため、状況に応じて適切な方法を選択できます。これらの機能に加えて、log4netには他にも多くの利点があります。例えば、マルチスレッドと非同期操作をサポートし、設定ファイルの動的更新もサポートしています。

デザインコンセプト

Log4Netは、柔軟でスケーラブルかつ効率的なログソリューションを提供するために設計された、人気の高い.NETログフレームワークです。その核となる考え方は、すべてのログ操作を一元管理・制御するために一元化することです。また、様々なログ記録および出力方法をサポートしており、特定のアプリケーションシナリオに合わせてカスタマイズ可能です。

実施原則

Log4Netは、ロガー、ログ出力部、レイアウタという3つの主要部分で構成されています。ロガーはアプリケーションのログイベントをキャプチャし、ログ出力部はログレコードを指定された場所に出力し、レイアウタは出力ログ情報をフォーマットします。

ロガー

Log4Netでは、ロガーがログ記録フレームワーク全体の中核を成します。各ロガーには、識別と取得を容易にするために一意の名前が付けられています。ロガーを使用することで、アプリケーション内の様々なモジュールに対して、ログ記録、分類、フィルタリングを実装できます。`LoggerManager.GetLogger`メソッドを使用して、指定した名前のロガーインスタンスを取得できます。例:

 ILog log = LogManager.GetLogger("MyLogger");

ログ出力

ログ出力機能は、ロガーから指定された場所にログレコードを出力する役割を担います。Log4Netは、コンソール出力、ファイル出力、メール出力など、様々なログ出力方法をサポートしています。設定ファイルで異なる出力方法を指定することにより、設定をカスタマイズできます。例えば、以下のようになります。

 <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout> </appender>

レイアウト

レイアウトマネージャは、出力されるログ情報のフォーマットを担当します。Log4Netは、PatternLayoutやXmlLayoutなど、様々な組み込みレイアウトマネージャを提供しており、カスタムレイアウトマネージャもサポートしています。

Log4Net を ASP.NET Core プロジェクトに統合する

Log4NetをASP.NET Coreプロジェクトに統合するには、NuGetパッケージを追加します。まず、プロジェクトにLog4Net NuGetパッケージをインストールします。

 Install-Package log4net

次に、アプリケーションの起動時にLog4Netを設定します。Program.csに次のコードを追加します。

 public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .ConfigureLogging((hostingContext, logging) => { logging.AddLog4Net(); // 添加Log4Net支持});

次に、Log4Net 構成情報をアプリケーションの構成ファイル (AppSettings.json または appsettings.Development.json) に追加します。

 "Log4Net": { "ConfigFile": "log4net.config" }

最後に、ログ出力のさまざまな構成が含まれる log4net.config 構成ファイルをプロジェクト ルート ディレクトリに追加します。

 <?xml version="1.0" encoding="utf-8"?> <log4net> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> </appender> <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="logs/log" /> <appendToFile value="true" /> <rollingStyle value="Date" /> <maxSizeRollBackups value="10" /> <datePattern value="_yyyyMMdd'.log'" /> <staticLogFileName value="false" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> </appender> <root> <level value="ALL" /> <appender-ref ref="ConsoleAppender" /> <appender-ref ref="RollingFileAppender" /> </root> </log4net>

このように、ILogインターフェースを使ってログ情報を記録できます。ログを記録する必要がある場合は、指定された名前のロガーインスタンスを取得し、対応する記録メソッドを呼び出すだけです。例えば、次のようになります。

 public class HomeController : Controller { private readonly ILog _log = LogManager.GetLogger(typeof(HomeController)); public IActionResult Index() { _log.Info("访问了首页!"); return View(); } }

要約

Log4Netは、アプリケーションに包括的なログソリューションを提供する、強力で高性能な.NETログフレームワークです。上記の例は、Log4NetをASP.NET Coreプロジェクトに統合するのが非常に簡単で、わずか数ステップで実現できることを示しています。