写入SQL DB的log4net的实现

时间:2017-03-03 20:28:07

标签: c# log4net

我有一个基本的实现,它调用一个存储过程,它向SQL数据库中的表添加一行。但是,此实现有很多开销,因为它尝试访问我尝试实现的每个日志的数据库(在一个函数调用中可能发生许多日志调用)。我想通过仅在调用函数结束时访问数据库来改进此实现。我也想使用这个函数几乎与使用log4net提供的记录器相同。

期望的实施:

class Object{
    SQLLogger logger = SQLLogManager.GetLogger("My Object");
    void foo(){
        logger.Info("Info");
        logger.Error("Error");
        logger.Info("Info2");
        //now when the function ends, the logger will access the DB and create 3 rows, disconnects
    }
}

旧实施:

class Object{
    SQLLogger logger = SQLLogManager.GetLogger("My Object");
    void foo(){
        logger.Info("Info");
        //access DB and adds a row, disconnects
        logger.Error("Error");
        //access DB and adds a row, disconnects
        logger.Info("Info2");
        //access DB and adds a row, disconnects
    }
}    

问题: 如何检测函数何时结束(-ish)?     - 也许我有一个存储X行的容器,只有当容器已满或定时器关闭时才访问数据库?

0 个答案:

没有答案