sharepoint logging moss log4net

SharePoint y Log4Net



logging moss (4)

Desarrollé una función log4net y la empaqué en un archivo wsp. El receptor de características agrega un httpmodule al web.config y el httpmodule carga el log4net.config desde el direcory de diseños cuando el evento de inicio de la aplicación se genera en el módulo http.

Estoy buscando las mejores prácticas para integrar log4net a SharePoint para solicitudes web, activación de funciones y todo lo relacionado con el temporizador.

Tengo varios subproyectos en mi granja, y me gustaría tener solo un archivo Log4Net.config.

[Editar]
No solo necesito configurar log4net para la aplicación web, lo que es fácil de hacer (uso global.asax y un archivo log4net.config, así puedo modificar la configuración de registro sin volver a cargar la aplicación web), pero también necesito iniciar sesión asincrónicamente eventos:

  • Manejador de eventos (como ItemAdded)
  • Timer Jobs
  • ...

En primer lugar, deberá modificar el archivo web.config donde reside su directorio virtual de SharePoint. Esto se debe a que necesitará agregar entradas SafeControl para confiar en el ensamblaje log4net. Puede actualizar el programa web.config programáticamente utilizando la clase SPWebConfigModification en un receptor de funciones. Como tiene que modificar web.config de todos modos, puede considerar incluir su configuración log4net dentro y no configurar una configuración log4net externa.

Sin embargo, si aún desea hacer esto, puede funcionar si agrega lo siguiente al archivo web.config:

<configuration ...> ... <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections> <log4net configSource="log4Net.config"> ... </configuration>

El archivo log4net.config debería poder vivir junto a su web.config. Como dice Nat, podría implementar este archivo como un paquete de solución.

Suponiendo que intenta ejecutar una confianza mínima, deberá actualizar su archivo de Seguridad de acceso de código para incluir también los ensamblados de log4net. Todo su código personalizado de SharePoint debería usar automáticamente su configuración de log4net.


Implementé esto recientemente y se me ocurrió una solución que funcionó para mí.

Despliegue su archivo de configuración de log4net a 12 colmenas y log4net dll en el GAC usando una solución de alcance global. Luego, en el código de su aplicación, inicialice de manera explícita log4net desde la ubicación de su archivo global. Esto le permite registrar el receptor de funciones, trabajos de temporizador y código de aplicación web.

[assembly: log4net.Config.XmlConfigurator(ConfigFile = @"C:/Program Files/Common Files/Microsoft Shared/" + @"Web Server Extensions/12/CONFIG/log4net.config", Watch = true)]

mira aquí http://www.codeproject.com/KB/sharepoint/SharepointLog4Net.aspx


Puede liberar el archivo de configuración como parte de los paquetes de solución en la sección 12 (use STSDev ) para crear cualquier paquete). Esto le daría una ubicación configurada para la configuración y cualquier cambio a la misma se puede liberar de forma controlada (es decir, sin necesidad de edición manual, simplemente retrotrae y vuelva a instalar la solución).