Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 放置日志代码的位置_C#_Logging - Fatal编程技术网

C# 放置日志代码的位置

C# 放置日志代码的位置,c#,logging,C#,Logging,我想知道在我的C#应用程序中应该把日志代码放在哪里 假设我想记录程序参数(比如myapp.exe-arg1) 在进入点类到达解析参数(实际上只有一个参数)并基于该参数创建对象的简单工厂类之前,参数通过main()从该入口点类传递 解析参数的工厂(层次结构的底部)应该负责记录参数,还是我应该将参数记录在main(层次结构的顶部)中 我觉得factory类应该是正确的位置,但我经常怀疑记录代码的正确位置在哪里,我真的很感激一些可以重用的最佳实践。我认为您应该在工厂内部登录 如果稍后将代码迁移到其他环

我想知道在我的C#应用程序中应该把日志代码放在哪里

假设我想记录程序参数(比如myapp.exe-arg1)

在进入点类到达解析参数(实际上只有一个参数)并基于该参数创建对象的简单工厂类之前,参数通过main()从该入口点类传递

解析参数的工厂(层次结构的底部)应该负责记录参数,还是我应该将参数记录在main(层次结构的顶部)中


我觉得factory类应该是正确的位置,但我经常怀疑记录代码的正确位置在哪里,我真的很感激一些可以重用的最佳实践。

我认为您应该在工厂内部登录


如果稍后将代码迁移到其他环境中使用,则main()可能不存在。main()所做的就是传递这些信息。因此,如果您创建一个ASP应用程序,并且希望保留相同的日志详细信息,那么factory方法将是有用的,因为factory根据参数决定创建的内容。

作为一项自定义规则,我总是尽可能地将事情记录在调用堆栈中,同时仍有必要进行日志记录(避免记录太频繁调用的小方法)。如果由于记录太少而失去了一些语义,则始终可以将扩展日志信息添加到稍高的位置