Ich bin völlig neu in Log4net. Ich habe es geschafft, etwas in Gang zu bringen, indem ich eine Konfigurationsdatei hinzugefügt und einfach protokolliert habe. Ich habe den Wert fest codiert, "C:\temp\log.txt"
aber das ist nicht gut genug.
Die Protokolle müssen in die speziellen Ordner verschoben werden
path = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
und dieser Pfad ändert sich je nachdem, ob Sie Windows Server 2008 oder Windows XP oder Vista usw. verwenden.
Wie kann ich den Speicherort der Datei in log4net programmgesteuert ändern?
Folgendes habe ich getan:
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
</configSections>
<log4net>
<root>
<level value="DEBUG" />
<appender-ref ref="LogFileAppender" />
</root>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="C:\temp\log.txt" />
<param name="AppendToFile" value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%-5p%d{yyyy-MM-dd hh:mm:ss} – %m%n" />
</layout>
</appender>
</log4net>
class Program
{
protected static readonly ILog log = LogManager.GetLogger(typeof(Program));
static void Main(string[] args)
{
log4net.Config.XmlConfigurator.Configure();
log.Warn("Log something");
path = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
// How can I change where I log stuff?
}
}
Ich muss nur herausfinden, wie ich Änderungen vornehmen kann, um Inhalte dort zu protokollieren, wo ich möchte.
Irgendwelche Vorschläge? Danke vielmals