c# - 在 SDK 中使用 log4net

标签 c# dll sdk log4net

我正在提供一个使用 C# 的 SDK。为了启用现场调试,我想包括使用 log4net 的日志记录。由于程序集将是一个 dll,如何在不使用 App.config 的情况下启用配置?

谢谢,

最佳答案

考虑使用 XmlConfigurator 为 log4net 配置一个独立的配置文件位置。您可以使用此技术来提供独立的基于文件的配置,而无需接触 app\web.config 或对其进行硬编码。示例:

http://haacked.com/archive/2005/03/07/ConfiguringLog4NetForWebApplications.aspx

更新

尝试使用以下 Bootstrap 来配置独立配置文件。它将构建一个完整的路径。如果仍然无法找到路径,请尝试注销该路径。

public static class LogFactory
{
    public const string ConfigFileName = "log4net.config";

    public static void Configure()
    {
        Type type = typeof(LogFactory);
        FileInfo assemblyDirectory = AssemblyInfo.GetCodeBaseDirectory(type);
        string path = Path.Combine(assemblyDirectory.FullName, ConfigFileName);
        FileInfo configFile = new FileInfo(path);
        XmlConfigurator.ConfigureAndWatch(configFile);
        log4net.ILog log = LogManager.GetLogger(type);
        log.ToString();
    }
}

调用:

LogFactory.Configure();

关于c# - 在 SDK 中使用 log4net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4542184/

相关文章:

.net - 在表单加载时将引用的 DLL 复制到本地目录

java - 如何解决取消引用空指针的问题?

visual-studio - 找不到合适的 SDK 来定位

c# - Lucene.NET:如何使用 BlockJoinQuery?

c# - 无法加载文件或程序集 Microsoft.Owin 3.0.0 到 3.0.1

c# - Win Forms DataGridView - 显示分层父/子行

c++ - 添加路径到 DLL 搜索路径以帮助执行依赖于 DLL 的 EXE

c++ - 加载的共享库中的类冲突

ios - Facebook sdk io 从相册中获取照片

c# - 在 WPF 中询问窗口是否打开的正确方法