2009-07-21 51 views
0

我需要构建点击和转换跟踪(比IIS日志文件更具体和更专注)到现有网站。我期待着相当高的负荷。我调查了使用log4net,特别是FileAppender Class,但文档明确指出:“这种类型对多线程操作不安全。”高负载网站日志记录文件的方法?

有人可以建议一个强大的方法来解决这种类型的重型伐木?我非常喜欢log4net给我的灵活性。我是否可以利用lock解决缺乏安全的多线程问题?这是否会引入性能/争用问题?

回答

1

虽然FileAppender本身可能不安全的日志记录,我当然期望通过log4net它的正常访问路由是线程安全的。

FAQ

  • log4net的是线程安全的。

换句话说,主要的log4net框架有足够的锁定,或者它有专门的日志线程为日志消息的生产者/消费者队列提供服务。

任何不是线程安全的日志框架都不会存活很长时间。

0

我对这个答案也很感兴趣,但是我会告诉你当我试图找到解决方案时被告知的。

一个简单的方法就是使用类似SQL数据库的东西。如果您想要的数据不适合这种情况,您可以让每个页面都可以写入自己的日志文件,然后定期合并日志文件。

但是,我确定有更好的解决方案。

1

您可以查看Microsoft企业库中提供的日志应用程序块。它提供了大量不同类型的记录器,以及一个方便的GUI配置器,您可以指向您的app.config \ web.config以修改它。所以不需要自己筛选XML。

下面是一个很好的教程链接如何获得它开始:

http://elegantcode.com/2009/01/20/enterprise-library-logging-101/

0

使用系统日志,你不会是具有任何线程问题。 Syslog,使用UDP将loglines发送到logdaemon(可能在同一台机器上)。

因为所有日志行都汇总在1个查看工具中,所以如果您拥有更多正在运行的进程/服务,它尤其适用。

如果你期望真的很重的负载,看看如何从Facebook的家伙做到这一点:http://developers.facebook.com/scribe/你可以使用他们的开源logtool。我认为你还没有达到他们的负担,所以你应该安全一段时间!

R