2013-08-27 157 views
0

在我的应用程序中,我使用log4net创建日志。我想在安装应用程序的位置创建日志文件。也就是说,如果应用程序安装在c:\下,则应该在c:\App_Instal_path\Logs(folder)中生成日志文件。如果是D:\,那么日志文件应该在D:\App_Instal_path\Logs(folder)之下。我曾经做过这样的:Log4net动态生成日志文件

<appender name="ColoredFileAppender" type="log4net.Appender.RollingFileAppender" > 
<file type="log4net.Util.PatternString"/> 
<file value=***NEEDS TO BE FILLED*** /> 

任何反应将非常感激..

+0

试试这个:HTTP://stackoverflow.com/questions/1535736/log4net-how-can-i-change-the-file -location-programmatically-c – Nahum

+0

您是否尝试将文件值设置为“”?要么 ”\” ?这将保存运行应用程序的日志。 – ilansch

回答

3

你可以把日志文件靠近你的exe文件,如果你这样写:

<file value="log-file.txt" /> 

在这种情况下, ,你把日志文件夹中的日志,靠近你的exe文件:

<file value="Logs/log-file.txt" /> 

在这种情况下,你把日志文件系统TMP文件夹中:

<file value="${TMP}\log-file.txt" /> 

看看这里的更多信息: http://logging.apache.org/log4net/release/config-examples.html

+0

谢谢你:在你的第二个答案它像日志\ log-file.txt ??(\而不是/)? – vysakh

+0

我认为没关系。在例子[链接](http://forums.asp.net/t/1052690.aspx)使用“\”,但我看了我的工作项目中的配置部分 - 我在这里使用“/”,它的工作很好。 –

+2

@vysakh实际上.NET(即底层的Win32 API)在大多数情况下都支持正斜杠'/'或反斜杠'\\'作为目录分隔符。为了一致性,我建议使用反斜杠。 –