2016-04-13 22 views
0

私はコンソールアプリケーションを作成しており、Windowsイベントログ(私のWindows 10ノートパソコン)にログメッセージを送信したいと考えています。イベントログにメッセージを表示できないようです。私は、しかし、log4netをテキストファイルとコンソールに書き込むことができます。ここに私のapp.configファイルには、次のとおりです。Log4NetをコンソールアプリケーションのEventLogに書き込む方法を教えてください。

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/> 
    </configSections> 

    <log4net> 

    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" > 
     <param name="File" value="game-playtest-log-file.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="%date [%thread] %-5level %logger - %message%newline" /> 
     </layout> 
    </appender> 

    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" > 
     <param name="LogName" value="GamePlayTestLog" /> 
     <param name="ApplicationName" value="GamePlayTest" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> 
     </layout> 
    </appender> 

    <appender name="colored-console" type="log4net.Appender.ColoredConsoleAppender"> 
     <mapping> 
     <level value="INFO" /> 
     <foreColor value="White, HighIntensity" /> 
     <backColor value="Green" /> 
     </mapping> 
     <mapping> 
     <level value="DEBUG" /> 
     <foreColor value="White, HighIntensity" /> 
     <backColor value="Blue" /> 
     </mapping> 
     <mapping> 
     <level value="WARN" /> 
     <foreColor value="Yellow, HighIntensity" /> 
     <backColor value="Purple" /> 
     </mapping> 
     <mapping> 
     <level value="ERROR" /> 
     <foreColor value="Yellow, HighIntensity" /> 
     <backColor value="Red" /> 
     </mapping> 

     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date --- %message%newline%newline"/> 
     </layout> 
    </appender> 

    <root> 
     <appender-ref ref="LogFileAppender"/> 
     <appender-ref ref="EventLogAppender"/> 
     <appender-ref ref="colored-console" /> 
     <priority value="DEBUG" /> 
     <level value="ALL"/> 
    </root> 

    </log4net> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
    </startup> 
</configuration> 

ここで私がテストしてい私のログコードされています。ここでは

log4net.Config.XmlConfigurator.Configure(); 
Logger.log.Info("Launching " + options.Input); 
Logger.log.Debug("TestDebugMsg"); 
Logger.log.Fatal("TestFatalMsg"); 

は私のロガークラスです:

using log4net; 

namespace GamePlayTest 
{ 
    public static class Logger 
    { 
     public static readonly ILog log = LogManager.GetLogger(typeof(Logger)); 
    } 
} 

Apache FAQによると、この問題は、しばしば管理者としてログを作成する必要があるためです。私は手動でGamePlayTestLogをNew-EventLogコマンドで作成しました。 GamePlayTestLogはイベントログにゼロイベントで表示されます。ただし、メッセージはテキストファイルとコンソールに送られます。

私はそれを設定する方法がわからないので、問題はソースに関係していると思われます。私はちょうど源としてexe名を使用することが働くことを望んだ。関連ウェブページやS/O記事がありますが、すべて古くなっています。私はhereからコードを試しました。私もGitHubからの例を試しましたが、成功しませんでした。私は何かが明らかに欠けているように感じる。

管理者として起動したPowerShellセッションからコンソールアプリケーション(GamePlayTest.exe)を実行していました。ここでは内部log4netのログの内容である:ここでは

log4net: log4net assembly [log4net, Version=1.2.15.0, Culture=neutral, PublicKeyToken=**********]. Loaded from [C:\Users\fores\git\game-playtest-tool\GamePlayTest\bin\x64\Release\log4net.dll]. (.NET Runtime [4.0.30319.42000] on Microsoft Windows NT 6.2.9200.0) 
log4net: defaultRepositoryType [log4net.Repository.Hierarchy.Hierarchy] 
log4net: Creating repository for assembly [GamePlayTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null] 
log4net: Assembly [GamePlayTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null] Loaded From [C:\Users\fores\git\game-playtest-tool\GamePlayTest\bin\x64\Release\GamePlayTest.exe] 
log4net: Assembly [GamePlayTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null] does not have a RepositoryAttribute specified. 
log4net: Assembly [GamePlayTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null] using repository [log4net-default-repository] and repository type [log4net.Repository.Hierarchy.Hierarchy] 
log4net: Creating repository [log4net-default-repository] using type [log4net.Repository.Hierarchy.Hierarchy] 
log4net: configuring repository [log4net-default-repository] using .config file section 
log4net: Application config file is [C:\Users\fores\git\game-playtest-tool\GamePlayTest\bin\x64\Release\GamePlayTest.exe.Config] 
log4net: Configuring Repository [log4net-default-repository] 
log4net: Configuration update mode [Merge]. 
log4net: Loading Appender [LogFileAppender] type: [log4net.Appender.RollingFileAppender] 
log4net: Setting Property [File] to String value [game-playtest-log-file.txt] 
log4net: Setting Property [AppendToFile] to Boolean value [True] 
log4net: Setting Property [RollingStyle] to RollingMode value [Size] 
log4net: Setting Property [MaxSizeRollBackups] to Int32 value [10] 
log4net: Setting Property [MaximumFileSize] to String value [10MB] 
log4net: Setting Property [StaticLogFileName] to Boolean value [True] 
log4net: Converter [message] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [newline] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Setting Property [ConversionPattern] to String value [%date [%thread] %-5level %logger [%property{NDC}] - %message%newline] 
log4net: Converter [date] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [literal] Option [ [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [thread] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [literal] Option [] ] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [level] Option [] Format [min=5,max=2147483647,leftAlign=True] 
log4net: Converter [literal] Option [ ] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [logger] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [literal] Option [ [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [property] Option [NDC] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [literal] Option [] - ] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [message] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [newline] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Setting Property [Layout] to object [log4net.Layout.PatternLayout] 
log4net: Searched for existing files in [C:\Users\fores\git\game-playtest-tool\GamePlayTest\bin\x64\Release] 
log4net: curSizeRollBackups starts at [0] 
log4net: Opening file for writing [C:\Users\fores\git\game-playtest-tool\GamePlayTest\bin\x64\Release\game-playtest-log-file.txt] append [True] 
log4net: Created Appender [LogFileAppender] 
log4net: Adding appender named [LogFileAppender] to logger [root]. 
log4net: Loading Appender [EventLogAppender] type: [log4net.Appender.EventLogAppender] 
log4net: Setting Property [LogName] to String value [GamePlayTestLog] 
log4net: Setting Property [ApplicationName] to String value [GamePlayTest] 
log4net: Converter [message] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [newline] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Setting Property [ConversionPattern] to String value [%date [%thread] %-5level %logger [%property{NDC}] - %message%newline] 
log4net: Converter [date] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [literal] Option [ [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [thread] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [literal] Option [] ] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [level] Option [] Format [min=5,max=2147483647,leftAlign=True] 
log4net: Converter [literal] Option [ ] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [logger] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [literal] Option [ [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [property] Option [NDC] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [literal] Option [] - ] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [message] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [newline] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Setting Property [Layout] to object [log4net.Layout.PatternLayout] 
log4net: Source [GamePlayTest] is registered to log [] 
log4net: Created Appender [EventLogAppender] 
log4net: Adding appender named [EventLogAppender] to logger [root]. 
log4net: Loading Appender [colored-console] type: [log4net.Appender.ColoredConsoleAppender] 
log4net: Setting Property [Level] to Level value [INFO] 
log4net: Setting Property [ForeColor] to Colors value [White, HighIntensity] 
log4net: Setting Property [BackColor] to Colors value [Green] 
log4net: Setting Collection Property [AddMapping] to object [log4net.Appender.ColoredConsoleAppender+LevelColors] 
log4net: Setting Property [Level] to Level value [DEBUG] 
log4net: Setting Property [ForeColor] to Colors value [White, HighIntensity] 
log4net: Setting Property [BackColor] to Colors value [Blue] 
log4net: Setting Collection Property [AddMapping] to object [log4net.Appender.ColoredConsoleAppender+LevelColors] 
log4net: Setting Property [Level] to Level value [WARN] 
log4net: Setting Property [ForeColor] to Colors value [Yellow, HighIntensity] 
log4net: Setting Property [BackColor] to Colors value [Purple] 
log4net: Setting Collection Property [AddMapping] to object [log4net.Appender.ColoredConsoleAppender+LevelColors] 
log4net: Setting Property [Level] to Level value [ERROR] 
log4net: Setting Property [ForeColor] to Colors value [Yellow, HighIntensity] 
log4net: Setting Property [BackColor] to Colors value [Red] 
log4net: Setting Collection Property [AddMapping] to object [log4net.Appender.ColoredConsoleAppender+LevelColors] 
log4net: Converter [message] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [newline] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Setting Property [ConversionPattern] to String value [%date --- %message%newline%newline] 
log4net: Converter [date] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [literal] Option [ --- ] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [message] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [newline] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [newline] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Setting Property [Layout] to object [log4net.Layout.PatternLayout] 
log4net: Created Appender [colored-console] 
log4net: Adding appender named [colored-console] to logger [root]. 
log4net: Logger [root] Level string is [DEBUG]. 
log4net: Logger [root] level set to [name="DEBUG",value=30000]. 
log4net: Logger [root] Level string is [ALL]. 
log4net: Logger [root] level set to [name="ALL",value=-2147483648]. 
log4net: Hierarchy Threshold [] 
log4net: Shutdown called on Hierarchy [log4net-default-repository] 

は、ログファイルからのサンプル行です:

2016-04-13 17:27:52,098 [1] INFO GamePlayTest.Logger - Launching C:\Program Files (x86)\Devotion\DevotionWin.exe 
+1

.exeをデバッグまたは実行していますか? – raven

+0

こんにちは@RobertoDeLaParra、管理モードでPowerShellセッションからexeを実行しています。 exeは64ビットのリリースビルドです。 –

+1

.exeはApp.configのApplicationName GamePlayTest.exeと正確な名前を持っていますか? – raven

答えて

1

カスタムイベントログを使用する場合は、あなたがためには、イベントログサービスを再起動する必要がありますそれは適切に表示されます。

1

イベントログの作成のみ管理者権限で実行する必要があります。 New-EventLogを使用する場合は、パラメータ-LogNameがlog4net configの 'LogName'パラメータに、-Sourceパラメータがlog4net configの `ApplicationName 'paramに対応することを確認してください。

ログエントリが作成されると、アプリケーション自体にWindowsイベントログにログインするための管理者権限は必要ありません。イベントログを作成してEventViewerを終了してもう一度開くと、そのエントリはツリービューのApplications and Services Logsノードの下に表示されます。

関連する問題