2009-11-29 133 views
2

请在使用log4net时帮助我完成此查询。log4net - 按用户日志记录

我使用log4net在我们的应用程序中。我在配置log4net以在用户级别记录错误时遇到问题。

也就是说,如果用户X登录,我喜欢创建文件名称X,并且用户X的所有错误都应该写入X.log。 Siilarly如果Y用户登录日志文件应该是Y.log的名称,最重要的一点是,他们可以同时登录。

我试着通过创建日志文件来运气,一旦用户登录,其名称将被动态地构建。但是,如果这些日志文件没有在同一时间使用该应用程序,那么日志文件会使用正确的名称并按预期方式书写,但如果两个用户都有活动会话,则仅为首次登录的用户创建日志文件,并在为FIRST用户创建的日志文件中记录第二个用户的错误。

请帮我这个。

回答

5

必须有更好的解决方案,但您可以从代码更改log4net配置,甚至可以决定要加载哪个配置文件 - 所以您可以在代码中执行它,这不如编辑XML文件。

因此,您需要做的是高度不推荐的操作,即每次调用记录器静态类时创建log4net配置,并根据调用用户执行所需操作。

再次......它感觉不对!

(它可能表现不佳)。

另一个更好解决方案是日志一切数据库(log4net的支持的话),与用户的列,然后从生产DB日志....

+1

1用于登录到DB。记录到每个用户的文件不会扩展。 – tvanfosson 2009-11-29 16:20:08

+1

用于登录到数据库的+1。海事组织这是正确的路要走。没有并发/可伸缩性问题和干净的即用型log4net使用。 – 2009-12-02 08:16:03