IronPythonからNLog

19th January 2026 at 11:16pm

NLogについて

NLogは、.NETプラットフォーム向けの柔軟で無料のロギングプラットフォームです。

特徴は、

  • Configurationファイルとプログラム(API)を使用して簡単に構成できます
  • ログメッセージはさまざまなレイアウトで出力可能です
  • 構造化ログへ対応しています

IronPythonにもloggingというライブラリがあります。こちらも手軽で便利ですが、NLogの方がより高機能です。

昔の記事はこちら

IronPythonから利用するための手順

IronPythonからC#のライブラリを利用する の手順で行いますが、プログラミングを一から説明するとややこしいので、こちら のサンプルを使ってポイントを説明します。

環境
・Visual Studio 2026
・Wondows フォームアプリ
・.Net8.0
  • 新規にプロジェクトを作成します。
    (サンプルを使う場合は不要です)

  • NugetでNLogをインストールします。[表示]→[ターミナル]で以下を実行します。
    (サンプルを使う場合は自動的に復元されますが、失敗した場合に試してみてください)
> cd ExampleOfNLog
> dotnet add package NLog --version 5.3.4 --source https://api.nuget.org/v3/index.json

  • dotnet add packageをcsprojファイルのあるフォルダで実行することがポイントです。
  • NLog 5系から6系の変更はドラスティックなので、今回のサンプルでは5系を使いました。

  • 簡単なプログラムを作成します。
  • サンプルでは「Form1.cs」に簡易なテストプログラムを書いています。
  • 後でIronPythonのパッケージにしたいので、IronPythonのLibにnlogというフォルダを作っておきます。

  • ビルドして動作を確認します。
  • サンプルではConfigurationファイルの選択を促されるので、実行ファイルと同フォルダにある NLog.config を選択してください。(デスクトップに出力するように設定しています)
  • NLog.config の記述方法については、こちらを参考にしてください。英語ですが、Chromeの翻訳機能などを使えばだいたい理解できます。

  • __ini__.pyを作成します。
  • 面倒くさいのは、パスを通す設定と参照設定です。
  • NLogはかなり使いやすいライブラリです。それでも、IronPythonから使う場合にはラッピングしてやらないと便利に使うことはできません。

  • 最後にReleaseでビルドし、生成された実行ファイルのあるフォルダ内容を全て、IronPythonの Lib/nlogフォルダにコピーします。
  • サンプルにおいては、 サンプルスクリプトも用意しています。IronPythonのコンソールを起動し、以下のスクリプトを実行すればログがデスクトップに出力されます。
# 'nlog' パッケージから 'examples' モジュールをインポートし、
# さらにその中の 'sample' スクリプトをインポート
from nlog.examples import sample

# sampleスクリプト内のrun()関数を実行
sample.run()

環境変数パスIRONPYTHON_HOMEの設定を忘れないようにしてください。(例:C:\IronPython34)

ひとこと

手間はかかりますが、完成してしまえばスクリプト上で実行できます。なかなか便利です。


HomeへIronPythonの記事Topへ