为什么使用Log4Net而不是仅仅写入我的数据库

本文关键字:我的 数据库 Log4Net 为什么 | 更新日期: 2023-09-27 17:56:01

我们正在讨论在我们的系统中实现Log4Net。我曾经使用它,我认为它很有用,我的朋友问在发生异常时使用它与仅写入我们的数据库相比有什么优势?

例如,log4net

  catch (Exception ex)
            {
                log.Error("UserNamePasswordStatus.NotExist", ex);
            }

并使用我们的代码:

  catch (Exception ex)
            {
                _Params.Add("?Exception_", ex);
                DataAccessMgr.Instance.ExecProcedure("insert_AppLog", _Params, false);                
            }

我应该怎么回答他?感谢

为什么使用Log4Net而不是仅仅写入我的数据库

你可以用

写入文件来争论同样的事情......但我相信主要原因是:如果可以重用上述库,为什么要重新发明一些东西。

您从简单的"日志记录"到数据库开始...然后你说...嗯。。。我想添加时间戳,所以你改变你的表格...然后你想...知道它来自哪里很有用...我应该更改我的日志记录以跟踪它...然后你说...然后。。。但后来你记得...它继续前进。

就个人而言,我发现NLoglog4net更容易.项目上的更多活动,更多的花里胡哨(这里是:如何开始的文章)。我真的很喜欢使用记录器,因为这样我就可以将一些消息重定向到文件,并通过简单地配置记录器在我的桌面上有一些消息弹出通知。你可以继续使用示例,但是直接写入数据库有什么意义呢?
难道你不会有一个数据库包装器来开始,只是为了避免这种情况吗?

这是个人选择,但Log4Net管理登录文件系统(在您的磁盘中),因此如果您没有数据库来记录错误消息,那么您可以选择它。但是,我看到在大多数企业应用程序中,人们选择在数据库中记录错误而不是在文件系统中记录错误,以便更好地进行审核。

同样,如果使用通过Log4Net(在 NuGet 中可用)编写的NLog,则可以使用相同的语法在数据库中记录错误。

log.Error("UserNamePasswordStatus.NotExist", ex);
显然,

使用Log4Net比将日志转储到DB/事件查看器的传统方式要多得多。它可以以更少的不。大型和小型应用程序的配置步骤。

有趣的是,它可以在每个级别进行自定义,以使其更可靠的日志记录。我喜欢滚动机制的功能(按大小,按日期等)。