2015-05-13 27 views
1

我执行日志在Web服务应用程序有以下要求:应用程序日志与对象序列化

  • 日志应被存储在数据库
  • 日志应该是机器可读(信息的每一位应存放在单独列)
  • 日志应该是可扩展(客户端代码可以指定信息将在数据库中去特定列)
  • 应该能够从客户端代码传递大对象数据库(serialiazing)
  • 不应该打性能(DB的写操作应在单独的线程来完成)

我知道,log4net的和similair解决方案具有DB追加程序。但是,如何编写数据库呢?和大对象?

的基本用例,这是翻阅事件,并能够在运行的任何地方获得输入/输出对象的能力。

我觉得我搞乱应用程序日志不同的东西。有没有人知道这种产品/架构的正确名称?也许有一些通用的解决方案?

回答

1

ReflectInsight一试。它使用能够添加扩展属性的结构格式。它也有一个Db作家监听器,或者你可以创建自己的。

编辑:

  1. 日志应存放在数据库(是的,你可以使用自己的数据库监听器 本)
  2. 日志应该是机器可读(信息 每一位应该是存储在单独的列)(是的,有标准 性质是每个邮件存储,再加上你可以通过使用扩展属性,这些属性也可以存储在数据库和 其他列表定义 自己eners,就像在实时监控等)
  3. 日志应该是可扩展 (客户端代码可以指定信息将在数据库 去特定的列)应该能够从客户端代码大对象传递给 数据库(serialiazing) (是的,这是开箱即用的。您可以通过简单配置来配置要在数据库中存储的属性。自定义对象是在日志自动序列(或DB你的情况),作为RI用来记录的结构格式)
  4. 不应该打性能(DB写 操作应在单独的线程来完成)(是全部。采伐活动,为了不影响主机应用程序的性能)
  5. 的实时浏览器本身并收到80000味精/秒通过一个单独的工作线程发送到侦听
  6. 直播内存占用小,因为大多数封邮件是在硬缓存驱动器
  7. 具有自动保存/自动清除功能。
  8. 可以轻松使用NLog,Log4net,EntLib,Common Logging框架映射到RI的框架(但是,您将失去记录丰富详细信息的能力,如数据集,集合等)。

enter image description here

免责声明:我不直接ReflectSoftware工作,但是我的主要开发者,帮助建立一个ReflectInsight。我的主要目标是帮助任何具有日志框架需求的人,并且只回应适用于这种问题的计算器问题。

+0

从第一个角度来看,我真的不明白为什么这比普通的log4net更好。它支持我上面列举的任何东西吗? – Vitaliy

+0

@Vitaliy - 我提供了更多的细节。请参阅编辑更改。 – code5