2
ログクラスから完全なファイル名を取得する方法はありますか? ロガーは次のような形式のファイルを作成しますC:\MyPath\log-20160631.txt
Serilog:ログファイルを開く
私はロガーの初期化に使用したソースファイルにアクセスできません。
編集:ここ ロガーのINITである:
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.LiterateConsole()
.WriteTo.RollingFile(@"C:\MyPath\log.txt")
.CreateLogger();
iは、例えば使用することができ、コード内のすべての場所でLog.Information()
しかし、シンクの情報はどのように取得できますか?私はローリングファイルシンクに渡したファイル名を取得したい。
私の現在の回避策は、手動で(クレイジー醜いコード)を実際のファイルを生成することです:私はGitHub Repoからもらった
public string LogFilename
{
get
{
string path = Path.GetDirectoryName(LogFilenameTemplate);
string filenameWithoutExtension = Path.GetFileNameWithoutExtension(LogFilenameTemplate);
string extension = Path.GetExtension(LogFilenameTemplate);
string date = DateTime.Now.ToString("yyyyMMdd");
string fullFilename = Path.Combine(path, filenameWithoutExtension + "-" + date + extension);
return fullFilename;
}
}
フォーマット。
「私はロガーの初期化に使用したソースファイルにアクセスできません。 serilogの初期化コードを投稿して、ファイル名が必要な場所と理由を正確に明確にしてください。 – PatrickSteele
サンプルコードと拡張された説明と現在の回避策を追加しました。 – Suplanus
[コードを介して](https://github.com/serilog/serilog-sinks-rollingfile/tree/dev/src/Serilog.Sinks.RollingFile/Sinks/RollingFile)からスキップすることはできません現在使用されているファイル名を取得します。私は別の質問があなたがそれを必要とするのはなぜだろうと思いますか?おそらく、ファイル名を知らずにやるべきことをする別の方法があります。 – PatrickSteele