1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

NLog を使って Xamarin.Forms からログ出力する方法 補足

Posted at

はじめに

この記事は、NLog を使って Xamarin.Forms からログ出力する方法 の補足記事です。

背景

先日、元記事の中で公開している GitHub のリポジトリに Issue が追加されていました。

  • File logging doesn't create file
    • NLog の 4.3.11 で動作確認を行った時点では、ログファイルは生成されていた
    • NLog 4.5.4 で動作確認したところ、確かにログファイルが生成されていませんでした

回避策

NLog 4.5.4 では、構成ファイルを自動的に読み込む機能が動いていないようです。NLog の GitHub のリポジトリに Issue が上がっていないようなので、Xamarin 固有の不具合かもしれません。
回避策する方法は、明示的に config ファイルを読み込む処理を記述することです。

  1. XmlLoggingConfiguration クラスのコンストラクタに config ファイルのパスを渡す
  2. LogManager クラスの Configuration プロパティに 1. で生成したインスタンスを設定する

以下にコードの例を記載します。

var configName = string.Empty;
#if __ANDROID__
configName = "assets/NLog.config";
#endif
#if __IOS__
configName = "NLog.config";
#endif
LogManager.Configuration = new XmlLoggingConfiguration(configName);
_logger = LogManager.GetCurrentClassLogger();

補足事項まとめ

  • NLog の構成ファイルを自動的に読み込む機能が動かなくなっている模様
  • 明示的に config ファイルを読み込む処理を記述する必要がある

サンプルコード

修正したサンプルを GitHub に公開しています。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?