C# 带有log4net的WPF-在userappdata中保存日志
我的解决方案中有一个DLL项目,负责记录其他项目中的事件。现在我面临的问题是如何保存日志文件。我想将其保存在用户应用程序数据中(c:\users\\AppData\Local\…) 如何在log4net.config文件中访问该位置 我的dll项目中有以下内容:C# 带有log4net的WPF-在userappdata中保存日志,c#,wpf,log4net,log4net-configuration,C#,Wpf,Log4net,Log4net Configuration,我的解决方案中有一个DLL项目,负责记录其他项目中的事件。现在我面临的问题是如何保存日志文件。我想将其保存在用户应用程序数据中(c:\users\\AppData\Local\…) 如何在log4net.config文件中访问该位置 我的dll项目中有以下内容: static Log() { log4net.GlobalContext.Properties["LogFileName"] = @"d:\fileRelease2"; //log file p
static Log()
{
log4net.GlobalContext.Properties["LogFileName"] = @"d:\fileRelease2"; //log file path
#if DEBUG
log4net.GlobalContext.Properties["LogFileName"] = @"d:\fileDebug2"; //log file path
#endif
FileInfo configFileInfo = new FileInfo("log4net.config");
log4net.Config.XmlConfigurator.ConfigureAndWatch(configFileInfo);
log = LogManager.GetLogger(typeof(Log));
}
提前谢谢
问候,
=============编辑2==========
我成功地将log4net.config设置为:
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="DEBUG" />
<levelMax value="OFF" />
</filter>
<param name="AppendToFile" value="true"/>
<file value="${AppData}\AppName\Logs\log" />
<staticLogFileName value="false"/>
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value=" yyyy-MM-dd".txt""/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger: %message%newline"/>
</layout>
</appender>
我现在面临的问题是,在IDE(VS2013 ultimate)中创建了文件夹。安装应用程序时(使用visual studio项目安装程序),不会创建文件夹/文件
如果我以管理员权限启动应用程序,它将创建文件夹/文件
知道为什么吗?试试使用
log4net.GlobalContext.Properties["LogFileName"] = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "fileRelease2");
我想这就是你需要的。Stackoverflow上已经发布了一个很好的答案,解释了如何使用它:。听起来您可能需要在安装程序中执行自定义操作来创建要保存日志文件的文件夹?我以前没有用VS创建过安装程序,因此恐怕无法在这方面帮助您。