您好我正在尝试使用数据库作为存储将 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。
有谁知道我在这里做错了什么?为什么当我添加异常数据时,只在日志表中添加,而其他两个表没有更新?