记录策略与性能

vto*_*ola 6 .net architecture logging log4net synchronization

我正在开发一个必须支持大量同步请求的Web应用程序,我想保持足够快.我现在要实现一个日志记录策略,我将使用log4net,但是...我应该记录什么以及如何记录?我的意思是:

  1. 日志记录如何影响性能?是否可以使用异步调用进行/ recomendable日志记录?
  2. 最好使用文本文件还是数据库?有可能有条件吗?例如,默认日志记录到数据库,如果失败,则切换到文本文件.
  3. 多线程怎么样?我使用log4net时应该关心同步吗?或者它是开箱即用的线程安全?

在需求中,应用程序应该为每个请求缓存一些内容,而且我担心它会对性能产生影响.

干杯.

nos*_*nos 15

  1. 它让事情变得更慢 - 做一些事情比无所事事花费更多时间.通常可以忽略不计.别担心.
  2. 登录到文本文件imo.它们易于移动/ grep /压缩/邮件等,您不必担心数据库已关闭这一事实会记录到数据库.如果你需要,可以使用登录到log4net数据库的附加程序.
  3. 是的,log4net是线程安全的.

记录/跟踪非常有价值 - 至少你应该记录错误,或者你永远不会知道它们.大多数日志记录apis允许您打开和关闭您需要记录的详细程度.

在成为问题之前不要担心性能.这不像是你正在构建月球火箭,并希望通过测试来看看它能承载多少重量 - 它只是代码,删除日志中的日志记录并重新编译它是否成为问题.