Я пытаюсь использовать Log 4Net для входа в Unity 3D. Он работает в редакторе, но не работает вне редактора.
Я храню свой файл журнала 4net. xml в папке Assets. Чтобы указать журналу 4net, где его найти, я добавил следующую строку:
XmlConfigurator.Configure(new FileInfo($"{Application.dataPath}/log4net.xml"));
Это прекрасно работает в редакторе. Журналы записываются в каталог в Мои документы.
Затем я экспортировал свою игру для запуска вне редактора, и журнал больше не записывается и не создается. Вне редактора, используя procmon, я обнаружил, что он ищет файл журнала 4net. xml в папке GameName_Data, которая находится в той же папке, что и исполняемый файл. Как только я скопировал файл, procmon показал, что процесс загружает файл xml. Я поместил операторы log во встроенный регистратор Unity вокруг кода конфигурации log 4net, и они оба написаны, поэтому выполняется код инициализации. Самое странное, что procmon не показывает никаких попыток чтения или записи из того места, в которое я хочу записать журнал 4net. Как будто он даже не пытается писать в него.
Есть ли что-то особенное в среде Unity, которое могло бы ограничить это? Есть ли какой-то шаг, который я пропускаю?
Вот мои настройки для инициализации журнала 4net:
Debug.Log("About to load log4net");
log4net.GlobalContext.Properties["ATimeStamp"] = DateTime.Now.ToString("yyyyMMddHHmmss");
XmlConfigurator.Configure(new FileInfo($"{Application.dataPath}/log4net.xml"));
Debug.Log("Loaded to load log4net");
Вот текст моего журнала 4net. xml: https://gist.github.com/nikhilsinha/39548c2481507aeeea6a2f750e7dd24f