2012-02-21 22 views
3

私はロギングにlog4netを使用するアセンブリを持っています。
私はAssemblynfo.csファイルでこれを持っている:log4netはWindows 7でログファイルを作成しません

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)] 

log4net.configファイルのようになります。私はそれが動作するIDEから自分のアプリケーションを実行すると

<?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> 

。 DCMarkLog.txtファイルは%APPDATA%\DC Lasersystem\DCMarkディレクトリに作成されます。

しかし、アプリケーションをインストールしてProgram Filesディレクトリから実行すると、ログファイルは取得されません。

私は、インストールディレクトリ内のリリースディレクトリと同じファイルを持っています。

私は...それは右ではありません許可のいくつかの種類です手掛かりを持ってい

誰もが推測していますか?

// Anders

答えて

4

これは許可の問題です。 Windows 7では、Program Filesディレクトリに書き込むには管理者権限が必要です。

  • 管理者
  • としてアプリケーションを実行したり、好ましい方法は、ユーザーがへの書き込みアクセス権を持つフォルダにログファイルを書き込む:あなたはどちらかになります。

を参照するために書き込むために適切な場所を見つけるには: Where to store Application Data in Windows 7 and Vista

+0

しかし、私はこれをしたと思いました! log4net.configで、ログファイルが "$ {APPDATA} \ DC Lasersystem \ DCMark \ DCMarkLog.txt"であることを指定しました。このディレクトリにプログラムに書き込み権限が必要ですか? – Andis59

+0

さて、私はAPPDATAからALLUSERSPROFILEに変わり、それがうまくいった!理由はわからないが... – Andis59

+0

お役立ち情報あなたがうまく働いてうれしいです。 –

関連する問題