我在使用NLog的Mono呼叫站點時遇到問題。行號缺失,就像調試信息文件(mdb)丟失一樣。但是mdb不會丟失。任何想法可能是錯誤的?呼叫站點不包含行號 - Linux上使用Mono的NLog
一些細節:
單聲道版本:
Mono JIT compiler version 3.12.1 (mono-3.12.0-branch/4cb3f77 Fri Jul 24 15:30:03 CST 2015)
NLOG版本:
4.2.2
C#代碼:
using NLog;
using NLog.Targets;
using NLog.Config;
namespace TestMono.Verbose
{
public sealed class TestCallsite
{
public static void Main(string[] arguments)
{
LoggingConfiguration config = new LoggingConfiguration();
ConsoleTarget consoleTarget = new ConsoleTarget();
consoleTarget.Layout = "${message} - ${callsite}";
config.AddTarget("console", consoleTarget);
LoggingRule rule1 = new LoggingRule("*", LogLevel.Debug, consoleTarget);
config.LoggingRules.Add(rule1);
LogManager.Configuration = config;
Logger logger = LogManager.GetLogger("Example");
logger.Trace("trace log message");
logger.Debug("debug log message");
logger.Info("info log message");
logger.Warn("warn log message");
logger.Error("error log message");
logger.Fatal("fatal log message");
}
}
}
彙編命令:
mcs /reference:NLog /reference:NLog.dll test.cs -debug
控制檯輸出:
>mono test.exe
debug log message - TestMono.Verbose.TestCallsite.Main
info log message - TestMono.Verbose.TestCallsite.Main
warn log message - TestMono.Verbose.TestCallsite.Main
error log message - TestMono.Verbose.TestCallsite.Main
fatal log message - TestMono.Verbose.TestCallsite.Main
應該有 「主」 之後是在托架上的行號。
編輯:
與.NET窗戶控制檯輸出:調用單時
> .\ConsoleApplication1.exe
debug log message - ConsoleApplication1.TestCallsite.Main(Program.cs:26)
info log message - ConsoleApplication1.TestCallsite.Main(Program.cs:27)
warn log message - ConsoleApplication1.TestCallsite.Main(Program.cs:28)
error log message - ConsoleApplication1.TestCallsite.Main(Program.cs:29)
fatal log message - ConsoleApplication1.TestCallsite.Main(Program.cs:30)
我認爲這是有關:http://stackoverflow.com/questions/19252938/can not-get-stacktrace-source-line-information-from-mono-dll – Julian