3 つの異なるタイプのログを作成するために、構成ファイルに 3 つのアペンダーがあります。グローバル コンテキスト プロパティを設定することで、3 つのアペンダーのそれぞれでファイルの動的命名を使用しています。場合によっては、1 つのアペンダーに対してログ ファイル名を動的に設定する必要があります。
1つのアペンダーのみにファイル名を設定すると、名前が動的に設定された実際のログファイルに加えて、データのない「null」という名前の別のファイルが作成されます。示されているように構成ファイルを作成しました。
<appender name="RollingFileAppenderV1" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="Logs\%property{applog}" />
.
.
.
<appender name="RollingFileAppenderV2" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="Logs\%property{dblog}" />
.
.
.
<logger name="Logger1">
<level value="DEBUG" />
<appender-ref ref="RollingFileAppenderV1" />
</logger>
<logger name="Logger2">
<level value="DEBUG" />
<appender-ref ref="RollingFileAppenderV2" />
</logger>
VB.NET コードでは、ファイル名を次のように設定します。
log4net.GlobalContext.Properties("applog") = "file1.log"
Dim logobj as log4net.Ilog = LogManager.GetLogger("Logger1")
logobj.debug("test")
この場合、「file1.log」と「null」という名前の別の空のファイルが作成されます。これは、実行時にいずれかのアペンダー ファイル名を設定している場合にのみ発生します。どんな助けでも感謝します。