我正在使用 log4net 的 adonet appender 进行数据库调试。日志记录级别设置为错误。数据库日志记录是为运行在不同服务器上的两个应用程序配置的,这些应用程序写入 Oracle 数据库上的同一个表。表的列是 loginId、level。我面临的问题是:
即使日志级别设置为错误,表中也显示了一些信息级别语句,并且相应的级别列显示为错误。
在某些语句之间,显示的登录 ID 与运行应用程序的实际用户的登录 ID 不同。
那么,如何在不同的服务器上配置 log4net 以自主运行。
编辑:我只有在运行应用程序的多个实例时才会遇到这些问题,否则 log4net 日志记录很好。
场景:我在 2 个具有不同登录 ID 的浏览器中浏览了应用程序的发布版本,并在每个浏览器中经历了不同的流程。结果是登录ID变得混乱。我从代码中的用户会话中获取登录 ID 值,然后存储到 log4net.GlobalContext.Properties 中。
经过一番研究,我发现log4net.GlobalContext.Properties
可以在http://logging.apache.org/log4net/release/manual/contexts.html中找到一些替代方案。我认为ThreadContext.Properties
应该使用而不是全局。
我认为由于存储到log4net.GlobalContext.Properties
.
问题 1:我检查了代码,语句是logger.info
. 但在数据库表中,它以错误级别记录。
问题2:登录ID代码:
user = (User)Session["User"];
log4net.GlobalContext.Properties["LOGINID"] = user.Login;
在 web.config 中。
如果您认为可以使用 ThreadContext.Properties 代替 global.properties,您能否告诉我如何将其用于 login_id。