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# 在3层桌面应用程序中实现错误日志记录最实际的地方是什么?_C#_Logging_Exception Handling_N Tier Architecture_3 Tier - Fatal编程技术网

C# 在3层桌面应用程序中实现错误日志记录最实际的地方是什么?

C# 在3层桌面应用程序中实现错误日志记录最实际的地方是什么?,c#,logging,exception-handling,n-tier-architecture,3-tier,C#,Logging,Exception Handling,N Tier Architecture,3 Tier,我目前正在开发一个小型的C#桌面应用程序,使用MongoDB作为我的首选数据库,使用经典(表示、业务逻辑和数据访问)。最近,我和我的一个朋友一起陷入了日志记录的困境,我们开始讨论应该在哪里进行应用程序日志记录(对于应用程序消息/代码、小错误、致命异常和其他一切)。就我个人而言,我相信在表示层中进行异常处理和错误日志记录将是最佳选择,但这只是我的问题 是否有任何行业标准或类似的关于应该在哪里进行日志记录的内容?如果没有,那么登录这两层有哪些优点和缺点?我同意您的看法,如果您使用传统的三层桌面,那么

我目前正在开发一个小型的C#桌面应用程序,使用MongoDB作为我的首选数据库,使用经典(表示、业务逻辑和数据访问)。最近,我和我的一个朋友一起陷入了日志记录的困境,我们开始讨论应该在哪里进行应用程序日志记录(对于应用程序消息/代码、小错误、致命异常和其他一切)。就我个人而言,我相信在表示层中进行异常处理和错误日志记录将是最佳选择,但这只是我的问题


是否有任何行业标准或类似的关于应该在哪里进行日志记录的内容?如果没有,那么登录这两层有哪些优点和缺点?

我同意您的看法,如果您使用传统的三层桌面,那么在表示层中进行错误处理和登录最有意义。争论的焦点是,您是否将有一个非表示层与其他层(业务和数据访问)进行交互;比如说web服务。拥有一个日志和错误处理层是我在这些场景中看到的最常用的方法。

在您的情况下,我会在业务逻辑层中使用它,因为根据我的经验,这是驱动数据访问和表示层功能的原因。@Brian-有趣的。。。我从未见过直接连接到业务层的日志记录;只有在表示层或作为应用程序范围的日志记录层中才可以看到日志记录。