AdoNetAppender写入错误的Azure数据库

时间:2015-07-14 14:32:50

标签: c# multithreading connection-string log4net azure-sql-database

我使用Log4Net登录Azure中的SQL数据库。我已经配置了配置文件并正常工作。日志数据正在写入。该应用程序为每个客户导入,转换和加载一组唯一的数据。在Azure中,我们为每个客户创建一个新数据库。在我的日志记录实用程序中,我有以下方法,应将日志记录连接字符串设置为正确的客户端数据库:

private static void SetDbConnection(string connectionString)
{
    var appender = ((AdoNetAppender)(Log.Logger.Repository.GetAppenders()[0]));
    appender.ConnectionString = connectionString;
    appender.ActivateOptions();
}

这似乎有些工作,但是,我正在为客户端B,客户端C和客户端D以及来回和周围的数据库中获取客户端A的日志。

这个应用程序有一件事是多线程的,我注意到,例如,所有客户端B的数据都在线程20中,所有客户端C的数据都在线程8等中。看起来在数据库中保持一致。

我的主要问题是,我如何确保只有客户A的日志才能到达客户端A的数据库?

我继承了这个应用程序,而且我并不熟悉线程。

更新另外,我在课程中添加了一个对象,方法中的一个锁,这似乎最初起作用,但最后,我仍然得到相同的结果

0 个答案:

没有答案