C# · 12月 26, 2021

c# – 使用msmq进行异步日志记录

我需要登录我们的应用程序,并希望尽可能少地记录由于记录所消耗的时间.我正在考虑使用MSMQ,以便应用程序将登录到MSMQ,然后我可以异步地将消息从MSMQ记录到数据库/文件.

这个想法在性能方面是否合适?或使用log4net同步记录到平面文件更好.

此外,我正在考虑编写日志记录抽象层,以便以后插入任何日志记录工具而不影响其他代码.

请指教.

谢谢,
sveerap

解决方法 我会建议不要这样做.对于不存在的问题,这是一个不必要的复杂解决方案.我已经在多个项目中使用了log4net,并且从未看到任何显着的性能下降.

为每条日志消息(DEBUG,INFO,WARN等)选择正确的日志记录级别是一个更好的主意.当您开始项目时,也许在您投入生产的短时间内,您可以记录从DEBUG到更高级别的所有内容.如果您确信一切正常,请在配置中切换到INFO.这应该足以解决您在日志记录中遇到的任何性能问题.

关于你的抽象层,我也不会这样做. Log4net本身通过其logger appender抽象了日志记录本身的所有细节.如果你真的想要这个,你可能还想看看Common.Logging.