Я разрабатываю плагин AutoCAD 2012 с использованием API-интерфейса API .net. Плагин Autocad - это dll, которые загружаются во время выполнения Autocad при запуске Autocad. успешно log lognet с использованием среды разработки Visual Studio.Однако, когда я запускаю плагин вне Visual Studio, то есть при развертывании моего плагина, log4net не регистрирует никаких сообщений или даже не создает файл журнала. и файл конфигурации.log4net не регистрируется из плагина Autocad при развертывании
log4net_autocad.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" requirePermission="false"/>
</configSections>
<log4net>
<appender name="AutocadRollingFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="${NIRVANA_SOFTWARE_INSTALL_PATH}Relay_Manager_Autocad.log"/>
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="0" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p [%C.%M] %m%n"/>
</layout>
</appender>
<logger name="AutocadFile">
<level value="All"/>
<appender-ref ref="AutocadRollingFileAppender"/>
</logger>
</log4net>
</configuration>
myPlugin.cs: Код для congifure регистрации
public class MyPlugin : IExtensionApplication {
private static log4net.ILog log;
void IExtensionApplication.Initialize() {
...
log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("log4net_autocad.config"));
log = log4net.LogManager.GetLogger("AutocadFile");
}
недействительным IExtensionApplication.Initialize() будет выполняться при запуске Autocad. Пара вещей, которые я проверил:
- Проверено, что Autocad плагин правильно загружена в Autocad, который означает, что код инициализации log4net побежал.
- Проверено, что log4net конфигурационный файл (log4net_autocad.config) копируется в каталоге бен развернутого приложения
Самое странное, что когда я загрузить плагин в Developement среде (VS 2010), плагин правильно регистрируется. Итак, почему log4net не регистрирует (или даже создает файл журнала) при развертывании.
EDIT: Я проверил некоторые дополнительные вещи
В плагин, прежде чем я войти, я проверил следующие через диалоговые окна оповещения.
- log.Logger.Name правильно возвращает имя регистратора, который я использую.
- log.Logger.IsEnabledFor (log4net.Core.Level.All) возвращает false, хотя я сконфигурировал Level Value = All в файле конфигурации.
EDIT-2 Я попытался определить конфигурационный файл, как описано в ссылающейся URL ответа. Я цитирую подход, описанный в документе.
2.] Настройка приложения файла: [AppName] .exe.config, [AppName] .dll.config Конфигурация на уровне приложений, [AppName] .exe.config или [AppName] .dll.config , где большая часть этого документа будет тратить свое время. Этот файл конфигурации будет содержать все параметры уровня приложения и даже может использоваться для определения использования и значений по умолчанию для параметров , связанных с файлами конфигурации Roaming-User и Local-User. Эти файлы обычно хранятся в том же каталоге, что и исполняемый файл приложения, но могут быть размещены в другом месте, если это необходимо. Там будет гораздо больше дискуссий.
Изложенный подход устраивает мое заявление, но я до сих пор не могу получить регистратор что-либо войти в all.I определил log4net конфигурационный файл с именем RelayAnalysis_Autocad.dll.config и снабдив его к log4net для конфигурации. Я думаю, что есть что-то еще, что я не могу понять. Я начал сомневаться, можем ли мы с помощью log4net подключиться к плагину autocad? Я также удалил путь среды и закодировал его так, чтобы устранить любые проблемы, связанные с чтением переменной окружения. Еще не повезло.
пытаются поставить log4net_autocad.config содержимое app.config Автохама? то есть файл autocadXXX.exe.config –
Ввод его в программные файлы версии acad.exe.config выдает пакет ошибок, и autocad даже не запускается. Ввод его в пользовательскую версию acad.exe.config не вызывает ошибок, но не регистрировался. Обратите внимание, что в обоих случаях я указал конфигуратор log4net на правильный файл. Я также попробовал еще несколько вещей, упомянутых в Edit-2 моего вопроса. – Jatin
Вы проверяли разрешения файлов в папке назначения? Кроме того, я должен попытаться создать пустой файл журнала перед запуском autocad. Наконец: пожалуйста, сохраните в pastebin ошибку, которую вы получите в acad.exe.config. Кроме того, см. Мое редактирование ниже. –