1

您好我正在尝试使用数据库作为存储将 EnterprisLibrary Logging 块集成到我的应用程序中。这是我目前所拥有的:

我已经为数据库运行了脚本并创建了一个名为 e-shop.Logging 的数据库,其中包含 3 个表 Category、CategoryLog 和 Log。

我在我的网络配置上创建了这个配置:

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

在我的代码中,我有这个配置类:

public static class LoggerBootstrapper
{
    public static void Start()
    {
        DatabaseFactory.SetDatabaseProviderFactory(new DatabaseProviderFactory());

        Logger.SetLogWriter(new LogWriterFactory().Create());
    }
}

这在我的 WebApi 项目中的 Global.asax 中调用。

这是我在整个应用程序中使用的类:

[InjectorRegistration(typeof(IExceptionLogger))]
public class ExceptionLogger : IExceptionLogger
{
    public void LogServerException(Exception exception)
    {
        string logger = LoggerCategories.ServerLogger.ToString();
        Logger.Write(exception, LoggerCategories.ServerLogger.ToString());
    }

    public void LogClientException(Exception exception)
    {
        Logger.Write(exception, LoggerCategories.ClientLogger.ToString());
    }
}
 public enum LoggerCategories
{
    ServerLogger,
    ClientLogger
}

当我调用 LogServerException 或 LogClientException 时,数据存储在 Log 表中,但没有存储在 Category 和 CategoryLog 表中。

我首先假设我必须自己添加类别,所以我添加了这两个类别:ServerLogger ClientLogger

当然它不起作用。我已经看到这个配置,当你添加一个类别时,它会自动添加到类别表中,当添加一个异常时,类别和日志之间的映射会自动完成抛出 CategoryLog。

有谁知道我在这里做错了什么?为什么当我添加异常数据时,只在日志表中添加,而其他两个表没有更新?

4

1 回答 1

0

在抛出 XML 之后,我意识到用于添加类别的存储过程设置不正确。我将其设置为 ServerLogger,实际存储过程名称是 AddCateogry。

于 2013-09-10T17:44:39.753 回答