У меня есть приложение службы WCF, и в его Web.config, я определил следующую конфигурацию: log4netпространство имен/класс/метод не отображается в файле журнала, когда параметры более 2
<log4net>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="F:\InternalAPIServer\logs\InternalAPIServer.log"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="2" />
<maximumFileSize value="1MB" />
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] [%-5p] %C.%M - %m%n"/>
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
</root>
</log4net>
В кодах, когда я назвал регистратор с одним или двумя параметрами:
Log.InfoFormat("Server certificate validity dates: [{0} - {1}].", ServerCertificate.GetEffectiveDateString(), ServerCertificate.GetExpirationDateString());
журнал Обнаруживаются оК в файле журнала:
2017-02-14 17:12:01,056 [12] [INFO ] InternalAPIServer.Connection.ValidateServerCertficate - Server certificate validity dates: [31/5/2016 8:00:00 AM - 7/6/2017 8:00:00 PM].
Но когда я назвал регистратор с тремя параметрами:
Log.InfoFormat("Server certificate issuer: [{0}], validity dates: [{1} - {2}].", ServerCertificate.Issuer, ServerCertificate.GetEffectiveDateString(), ServerCertificate.GetExpirationDateString());
Бревно уже не нормально, потому что пространство имен, класс и метод стал «?.?»:
2017-02-14 17:22:01,056 [12] [INFO ] ?.? - Server certificate issuer: [CN=DigiCert SHA2 Secure Server CA, O=DigiCert Inc], C=US, validity dates: [31/5/2016 8:00:00 AM - 7/6/2017 8:00:00 PM].
Почему это так ? Как сохранить имя пространства имен, класс и имя метода из-за подавления, когда количество параметров для регистратора больше двух?
Заранее спасибо.