Reputation: 569
I have an assembly that uses log4net for logging.
I have this in the Assemblynfo.cs file:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
The log4net.config file looks like this:
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
<layout type="log4net.Layout.PatternLayout">
<!-- <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" /> -->
<conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="${APPDATA}\\DC Lasersystem\\DCMark\\DCMarkLog.txt" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value=" yyyy-MM-dd" />
<maxSizeRollBackups value="10" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
<appender name="TraceAppender" type="log4net.Appender.TraceAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
<layout type="log4net.Layout.PatternLayout">
<!-- <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" /> -->
<conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingLogFileAppender" />
</root>
</log4net>
When I run my application from the IDE it works. The DCMarkLog.txt file is created in %APPDATA%\DC Lasersystem\DCMark
directory.
BUT When I install the application and run it from Program Files directory then I don't get a log file!
I have the same files in the install directory as in the Release directory.
I'm guessing it's some kind of permission that isn't right...
Anyone that has a clue?
// Anders
Upvotes: 4
Views: 3007
Reputation: 116837
This is a permission issue. In Windows 7 you require administrator rights to write to the Program Files
directory. You will have to either:
To find the correct location to write to refer to: Where to store Application Data in Windows 7 and Vista
Upvotes: 4