Я работаю над проектом с некоторыми пользовательскими компонентами рабочего процесса Sharepoint, к которым я бы хотел добавить log4net.log4net и Sharepoint 2007 Workflow
Я действительно пытаюсь получить log4net для вывода чего-либо вообще, хотя!
Вот моя текущая настройка:
В коде для моего рабочего процесса:
private ILog log;
public MessageQueueWorkflow()
{
InitializeComponent();
string filepath = ConfigurationManager.AppSettings["log4netConfigPath"];
if (!string.IsNullOrEmpty(filepath))
{
log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(filepath));
log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
}
}
public Guid workflowId = default(System.Guid);
public SPWorkflowActivationProperties workflowProperties = new SPWorkflowActivationProperties();
private void onWorkflowActivated1_Invoked(object sender, ExternalDataEventArgs e)
{
try
{
#region Logging
if (log.IsDebugEnabled)
{
log.Debug(System.Reflection.MethodInfo.GetCurrentMethod().Name);
}
#endregion Logging
// do some stuff
}
catch (Exception ex)
{
if (log.IsErrorEnabled)
{
log.Error("An error has occurred.", ex);
}
throw ex;
}
}
В моем web.config для сайта Sharepoint:
<appSettings>
<add key="log4netConfigPath" value="C:\Inetpub\wwwroot\wss\VirtualDirectories\80\log4net.config"/>
</appSettings>
В моем файле log4net.config :
<log4net debug="true">
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
<applicationName value="MyApp" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d %-5p %c - %m%n" />
</layout>
</appender>
</log4net>
Теперь, когда я запускаю этот рабочий процесс, я ожидаю увидеть некоторые отладочные записи, отображаемые в EventViewer, но я ничего не получаю.
Любые идеи, что я делаю неправильно?
Спасибо!
Awesome ... Спасибо Stefan. Я довольно много перепутал с конфигурационным файлом и не заметил, что я сбил узел! Трассировка также была хорошим предложением и показала, что независимо от того, что работает служба Sharepoint Share, у нее нет доступа к использованию EventLog. Я изменил его для записи в файл, и теперь он работает правильно. –
NeilD