在混合语言环境中自定义日志记录

时间:2011-12-28 15:54:12

标签: c# visual-c++ logging

我的任务是将日志记录引入更大的项目。我有以下要求:

  • 必须从Visual Studio的C ++产品,C#产品,桌面应用程序,Windows服务启用记录到同一文件,并且多个进程应该能够一次写入日志文件。
  • 日志格式是自定义的(以冒号分隔的字段,类似于“custom_date; custom_time; the_rest; of_the_fields”)。
  • 日志文件的大小有限制。
  • 主要的.log文件和较旧的.bak文件。创建新的.log文件并将当前.log重命名为.bak。
  • 时,将删除.bak文件
  • 在一个特殊情况下,日志文件的名称取决于创建时间。在这种情况下,没有多进程写入。

现在,我可以推出自己的实现,但如果有现成的免费库可以满足所有要求,那将非常好。有没有人知道这些图书馆?

5 个答案:

答案 0 :(得分:1)

log4net

满足了您的许多要求(我认为只有语言独立性)

由于您想使用多个软件组件来使用记录器,我建议您自己编写一个Windows服务,因为它可以被所有类型的客户端软件使用(C ++,C#,...)

答案 1 :(得分:1)

也许你只需写信给Event Log

答案 2 :(得分:0)

使用Microsoft的企业例外和日志记录应用程序块。它满足您的所有要求。所有内容都可以使用web.config或app.config进行配置,并允许使用模板记录特定的详细信息。另请注意,Microsoft已包含一个滚动类型记录器,它将根据大小或日期/时间自动启动新文件。它是您想要执行的任何类型的日志记录的完整包,MSMQ,SQL,平面文件,Windows事件日志等。

答案 3 :(得分:0)

我建议NLog,满足您的大多数要求

答案 4 :(得分:0)

Log4Net可以帮助你获得2分和3分,对于你的1,4分和5分,我建议你写一个WebService来完成日志,创建,删除等的所有写作工作。