Приложение было разработано на c ++ и c #.Связь между c ++ и c # будет происходить через COM Interop.
Планировал использовать log4net на стороне c # для ведения журнала.
Исполняемый файл C ++ будет выступать в качестве основного проекта, все проекты c # были библиотеками классов.
Я добавил новый файл app.config,
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net , Version=2.0.8, Culture=neutral, PublicKeyToken=1b44e1d426115821" />
</configSections>
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="logfilejson" />
</root>
<appender name="logfilejson" type="log4net.Appender.RollingFileAppender">
<lockingModel type="log4net.Appender.RollingFileAppender+MinimalLock" />
<file type="log4net.Util.PatternString"
value="%envFolderPath{CommonApplicationData}\\Logs\\logA_%date{yyyy_MM_dd}.log" />
<appendToFile value="true" />
<staticLogFileName value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyy_MM_dd"/>
<layout type="log4net.Layout.SerializedLayout, log4net.Ext.Json">
<decorator type="log4net.Layout.Decorators.StandardTypesDecorator, log4net.Ext.Json" />
<default />
<remove value="message" />
<remove value="ndc"/>
<remove value="appname"/>
<remove value="logger"/>
<remove value="date"/>
<remove value="level"/>
<remove value="thread"/>
<member value="timestamp%date:yyyy-MM-dd HH:mm:ss,fff" />
</layout>
</appender>
</log4net>
<appSettings>
<add key="log4net.Internal.Debug" value="true" />
</appSettings>
<system.diagnostics>
<trace autoflush="true" indentsize="4" >
<listeners>
<add name="textWriterTraceListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="E:\\log4net.txt" />
<remove name="Default" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
И в,
файле AssemblyInfo.cs Указано на расположение файла app.config,
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "C:\\Program Files (x86)\\Application\\app.config", Watch = true)]
Наличие файла двух классов впроект библиотеки классов.
Class1.cs и Class2.cs
Когда функции Class1 были вызваны из исполняемого файла c ++, ведение журнала происходило правильно.
log4net.Config.XmlConfigurator.Configure();
private static readonly ILog logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
log4net.LogManager.GetRepository (). Configured - true, это было верно при отладке.
Но журналы Class2 не регистрировались, и при отладке эта log4net.LogManager.GetRepository (). Configured - true также для Class2.
E: \ log4net.txt - внутренний файл отладки также не создан.Я не могу понять, в чем может быть проблема.Кто-нибудь может мне помочь?