Windows サービス用の単純なファイル ロガーを作成しようとしていますが、ファイルが書き込まれません。ここに私のapp.configファイルがあります:
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<connectionStrings>
<add name="MyAppConnectionString" connectionString="Data Source=.;Initial Catalog=MyApp;Integrated Security=True;MultipleActiveResultSets=True" />
<add name="MyAppEntities" connectionString="metadata=res://*/MyAppModel.csdl|res://*/MyAppModel.ssdl|res://*/MyAppModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.;Initial Catalog=MyApp;Integrated Security=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
<system.web>
<roleManager enabled="true" defaultProvider="MyAppSqlRoleProvider">
<providers>
<add name="MyAppSqlRoleProvider"
type="System.Web.Security.SqlRoleProvider"
applicationName="MyApp"
connectionStringName="MyAppConnectionString"/>
</providers>
</roleManager>
</system.web>
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="C:/logfiles/MyAppAlarms.txt" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="FileAppender" />
</root>
</log4net>
</configuration>
これに似た投稿が他にもあることは知っていますが、それらを読んで、一見すべてを試してみましたが、どこにも到達できませんでした. 上記の同じタグをコンソールアプリに入れてみましたが、うまくいきました。app.config をコピーして C:\ ドライブに貼り付け、AssemblyInfo.cs でこれを使用して参照しようとしました。
[アセンブリ: log4net.Config.XmlConfigurator(Watch = true, ConfigFile = @"C:\app.config")]
しかし、それはうまくいきませんでした。デバッガーを使用してサービスにアタッチできましたが、ここでそれをどのように活用できるかわかりません。何も例外をスローしていません。StreamWriter を使用して同じファイルに書き込もうとしたところ、うまくいったので、書き込み権限の問題ではないことがわかりました。
私は次に何をしようか途方に暮れています。デバッグ情報を取得して何が問題なのかを特定する方法はありますか? 内部デバッグを有効にして DebugView を実行しようとしましたが、低レベルのネットワーク メッセージ以外は何も表示されませんでした。また、log4net debug=true を設定しようとしましたが、これはサービスに役立たないコンソールに書き込むと思います。