问题
有些时候我们在发布后还需要查看调试输出已确定问题,通过以下几种办法存在一些问题:
Debug.WriteLine
发布后无法可见把程序修改成命令行程序,但是感觉软件不正式,不和谐
使用
Trace.WriteLine
后在调试的时候又看不到
解决办法:
使用条件编译重写WriteLine方法,将使用的
Debug.WriteLine
替换成Logger.WriteLine
:
public static class Logger
{
public static void WriteLine(string? message)
{
#if DEBUG
Debug.WriteLine(message);
#else
Trace.WriteLine(message);
#endif
}
public static void WriteLine(object? value)
{
#if DEBUG
Debug.WriteLine(value);
#else
Trace.WriteLine(value);
#endif
}
public static void WriteLine(string? message, string? category)
{
#if DEBUG
Debug.WriteLine(message, category);
#else
Trace.WriteLine(message, category);
#endif
}
public static void WriteLine(object? value, string? category)
{
#if DEBUG
Debug.WriteLine(value, category);
#else
Trace.WriteLine(value, category);
#endif
}
}
通过命令行打开软件
dotnet xxxxx.dll
进阶
既然使用了命令行,就使用启动参数 --debug true
见: