c# - .Net Logger(编写自己的 vs log4net/enterprise logger/nlog 等)

标签 c# .net logging

我在一个拥有大约 50 多名开发人员的 IT 部门工作。它曾经有大约 100 多名开发人员,但由于经济衰退而被削减。

当我们的部门规模扩大时,我们雄心勃勃地努力建立一个特殊的架构小组。

这个小组决定做的一件事是创建我们自己的内部记录器。他们认为这是一项如此简单的任务,我们可以花费资源自己完成。现在我们遇到了性能问题并且难以查看生成的日志,一些员工对我们将资源花费在像这样的基础设施上而不是专注于服务我们的业务和使用已经存在的东西(如 log4net 或 Enterprise Logger)感到沮丧。

你能帮我列出你不应该创建自己的 .net 记录器的原因吗。

也欢迎您应该获得公正观点的原因:)

最佳答案

在我上一份工作中,几乎所有的基础设施都是我们自己编写的,而不是使用一些现成的产品。 (我所说的“所有基础设施”是指所有这些 - 日志记录、消息传递、数据库、容器等)。

它的最大缺点之一是它使我们将​​大部分时间花在与最终用户无关的事情上,而不是添加更多功能。

从这份工作中,我学会了始终专注于您的产品旨在解决的问题。贵公司正在开发记录器吗?您的记录器的质量是否会比其他功能更能影响您的客户?我不这么认为。

您的预算和人力有限 - 明智地使用它。不要重新发明轮子。我相信,如果您将注意力集中在他们需要的事情上,您的公司和您的客户将会受益。

在我当前的项目中,我使用 NHibernate 作为 ORM 框架,而不是在其他项目中使用的内部框架。我的重点不是修复旧 ORM 框架中的错误,而是关注项目的主要路线图。此外,NHibernate 有它自己的路线图,这意味着附加功能将在我公司没有太多资源的情况下出现。

关于c# - .Net Logger(编写自己的 vs log4net/enterprise logger/nlog 等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1481017/

相关文章:

c# - 无法使用 MassTransit 将消息提交到 Azure 服务总线主题

c# - Fluent NHibernate 中的内存泄漏

html - .Net中推荐的HTML可读性转码库

java - 从自定义属性文件获取 Log4j 设置

c# - Azure Functions 的每个环境配置?

c# - 'Microsoft.ACE.OLEDB.12.0' 提供程序未在本地计算机上注册。

c# - 如何将 IEnumerable<Task<T>> 转换为 IObservable<T>

linux - 我如何让 VLC 2.x 在我的 Linux 下工作?

go - Logrus条目没有“缓冲区”字段

c# - 如何在解决方案中获取给定类的完整命名空间的程序集名称和类名称?