Давным-давно, с тех пор, как я использовал log4net, но, если я правильно помню, вы можете хранить свой файл конфигурации там, где захотите, и позволить log4net загрузить его оттуда во время инициализации регистратора.
1) Хорошим местом для хранения файла конфигурации была бы папка в пределах 12 ульев. Возможно, папка вашей функции. Поскольку путь к этому файлу не изменится, ссылаться на него с помощью регистратора будет легко.
2) Я думаю, вам придется каждый раз инициализировать регистратор, так как SPJobDefinition (класс задания таймера) хранится в базе данных, когда он не запускается. Функциональность для сохранения задания таймера в базе данных взята из базового класса SPJobDefinition SPPersistedObject . Переменные-члены класса, унаследованные от SPPersistedObject, которые должны храниться вместе с классом в базе данных, должны быть помечены атрибутом [Persisted]
. Но насколько я знаю, постоянные объекты могут быть только элементарными типами данных (int, long, string, ...).
Таким образом, хранение объекта Log4net Logger в базе данных не будет работать или, по крайней мере, не поддерживается. Поэтому каждый раз, когда ваша работа загружается из базы данных, объект Logger должен снова инициализироваться.