Hola estoy tratando de usar Log4Net en WCF IIS servicio alojado, pero no de registro de datos.
Alguien ha logrado el registro en el servicio WCF mediante Log4Net?

Debe tener algo que ver con la manera en que han de configurar la configuración..comprobar el eventvwr para ver si hay errores enumerados..también donde se han especificado los lof4net configuración.

OriginalEl autor RockWorld | 2011-01-05

4 Comentarios

  1. 8

    Estoy utilizando con éxito log4net en mi proyecto dentro de un auto-organizada de aplicación de WCF.

    Nuestros pasos para la instalación son bastante sencillas.

    1. Agregar referencia a log4net.dll para nuestra consola host de servicio de proyecto (punto de entrada de nuestra aplicación)
    2. Agregue la línea siguiente a la anterior del proyecto AssemblyInfo.cs archivo (permite una costumbre log4net archivo de configuración para ser especifica, que log4net va a «ver» en busca de actualizaciones. Rápido, pero tal vez un poco sucio..)

      [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

    3. Agregar log4net.archivo de configuración de la consola de proyecto y se copia en el directorio de salida (propiedades de archivo: «Copiar en el Directorio de Salida»)

    4. Agregar log4net.dll de referencia para todos los proyectos donde se requiere el registro de
    5. Declarar el registrador como privadas miembro estática de las clases en las que es necesario iniciar sesión:

       private static readonly log4net.ILog Logger = 
       log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
    6. De registro donde se requiera:

      Logger.Info("Starting console service host");

    Este artículo bastante cubre: http://haacked.com/archive/2005/03/07/ConfiguringLog4NetForWebApplications.aspx

    ¿Has probado IIS alojado servicio WCf?
    Afaik esto no va a funcionar cuando está alojado en IIS. Log4net no encontrar el archivo de configuración…
    trabajó para mí en IIS. Pero log4net.config debe tener una «copia en el directorio de salida» set en el VS. En otras palabras, log4net.config debe estar en el » bin » de la carpeta en la localización de despliegue en IIS
    que es sin duda la manera de hacerlo. He actualizado mi respuesta. nota que yo mencione que usted necesita para copiar el archivo de configuración en el directorio de salida.
    Si usted publica esta más en stackoverflow.com/questions/552718/… para oen se upvote (estoy en el proceso de tener Q esta siendo marcado como duplkicate)

    OriginalEl autor Pero P.

  2. 1

    Otra cosa a tener cuidado es cuando tienes un custom WCF ServiceHostFactory definida en un conjunto separado de su extremo de Wcf (por ejemplo, mantener SECO), a continuación, la asamblea, en donde la fábrica está definido es el de la «raíz» de la asamblea desde el punto de vista de log4net y la XmlConfigurator atributo debe ser declarado en la asamblea.

    Este FAQ http://logging.apache.org/log4net/release/faq.html#trouble-webapp-stops-logging y vinculado comentarios explican que log4net quiere inicializar tan pronto como sea posible

    OriginalEl autor Peter McEvoy

  3. 0

    Utilizando la asamblea atributo para configurar log4net no funcionará ya que log4net no compruebe el directorio correcto para el archivo de configuración. Tal vez usted podría tratar de utilizar algunos de ruta de acceso relativa al especificar el archivo de configuración, pero es más fácil utilizar una de las soluciones sugeridas aquí.

    OriginalEl autor Stefan Egli

  4. 0

    Estoy usando log4net en MSMQ activado el servicio WCF alojado en IIS 7. Yo uso Ninject para la inyección de dependencias e instalado Ninject.Las extensiones.Wcf, Ninject.Las extensiones.La tala de árboles.log4net paquetes de NuGet y añadió log4net de la sección de configuración de la Web.archivo de configuración.

    He visto a la gente sugerir la adición de log4net código de inicialización para el Mundial.asax, pero esto no funciona para MSMQ activado los servicios como lo que puedo decir. Sin embargo, Ninject instala WebActivator paquete que permite ejecutar código de inicialización web cuando se inicia la aplicación. Ninject lugares de su propio código en App_Start\NinjectWebCommon.cs. Para configurar log4net usted necesita agregar código al método Start. La mina se parece a esto:

    public static void Start() 
    {
        DynamicModuleUtility.RegisterModule(typeof(OnePerRequestHttpModule));
        DynamicModuleUtility.RegisterModule(typeof(NinjectHttpModule));
    
        //configure log4net
        XmlConfigurator.Configure();
    
        bootstrapper.Initialize(CreateKernel);
    }

    OriginalEl autor LeffeBrune

Dejar respuesta

Please enter your comment!
Please enter your name here