调试日志弄乱了我的代码

Yes*_*ses 2 c# windows debugging

我正在尝试将调试日志添加到我的C#.net代码中.但它弄乱了我的代码,它看起来像一个地狱.有没有什么能够自动记录每个代码的值?现在看起来像这样

    #if DEBUG 
        debuglogger("The functionstarted");
    #endif
    someCode1(); 
    #if DEBUG 
        debuglogger("SomeCode1 Finished");
    #endif
    someCode2(); 
    #if DEBUG 
        debuglogger("SomeCode2 Finished");
    #endif
    someCode3(); 
    #if DEBUG 
        debuglogger("SomeCode3 Finished");
    #endif
    #if DEBUG 
        debuglogger("Function End");
    #endif
Run Code Online (Sandbox Code Playgroud)

khe*_*ang 6

你应该使用ConditionalAttribute.它允许您定义在条件不匹配时将在构建时删除的条件方法:

[Conditional("DEBUG")]
void DebugLog(string message)
{
    // Do some logging...
}
Run Code Online (Sandbox Code Playgroud)

对于此方法的调用将在DEBUG未定义的构建中被删除.就像

#if DEBUG
DebugLog("Testing...");
#endif
Run Code Online (Sandbox Code Playgroud)

与移动方法#if 内部相比,这具有不会使堆栈轨迹混乱的额外好处.