エラーが発生した場合にログをメールに添付して送信したりする場合にログファイル名が取得したい。

そんなケースで

        string fileName = null;
        var config = LogManager.Configuration;
        foreach (var item in config.ConfiguredNamedTargets)
        {
            if (item.Name == "File" && item is NLog.Targets.FileTarget)
            {
                var standardTarget = item as NLog.Targets.FileTarget;
                fileName = NLog.Layouts.SimpleLayout.Evaluate((standardTarget.FileName as NLog.Layouts.SimpleLayout).Text);
                break;
            }
        }

複数のログを出力している場合、TargetのNameを指定すれば的を絞れる。