ConcurrentLogger es una clase simple de .NET que permite escribir un fichero de trazas (log) secuencial desde una aplicación multi-hilo. Estoy programando un controlador para un robot usando MSRS y quería generar un archivo de log independiente, que pudiera escribirse de forma segura en una aplicación asíncrona y multi-hilo.
Estuve buscando otros componentes o bibliotecas de .NET para escribir archivos de trazas, como log4net, CSharp Logger, Logger.NET, etc. Sin embargo, no pude encontrar un componente de fácil uso y que permitiera llamadas concurrentes y asíncronas. Entonces, decidí escribir un componente realmente simple que, usando la biblioteca CCR, permitiera escribir un fichero de log básico en este entorno. Sólo hay que definir un nivel de log y llamar a un método cada vez que se quiera escribir una línea en el archivo.
Este es un ejemplo de uso en C# (C Almhoadilla):
[...] ConcurrentLogger logger = new ConcurrentLogger( "MyLogFile.txt", LogLevel.DEBUG ); [...] logger.writeLog( "MyComponent", LogLevel.INFO, "This is a test INFO message" ); [...]
Los niveles de log predefinidos (definidos en la clase estática LogLevel) son:
- DEBUG: traza de todos los mensajes. - INFO: traza de todos los mensajes, menos los de DEBUG. - WARN: traza de todos los mensajes menos DEBUG e INFO. - ERROR: traza de sólo los mensajes de ERROR y FATAL. - FATAL: sólo traza los mensajes de error fatal.
Como esta clase hace uso de la biblioteca CCR se necesita incluir una referencia al componente CCR en el proyecto de Visual Studio. La biblioteca CCR está disponible de forma gratuita y se distribuye junto con el SDK de Microsoft Robotics Studio. Usando el CCR, ConcurrentLogger asegura que las llamadas que escriben las líneas del archivo de log se ejecutan siempre secuencialmente en el mismo hilo, aunque las llamadas se generen de forma asíncrona desde diferentes hilos. Las llamadas al método writeLog son no bloqueantes, es decir, la solicitud se encola y sigue la ejecución del programa.
Más documentación sobre este componente:
Related Items:
- Código Fuente de ConcurrentLogger Beta 1
- Páginas de Microsoft Robotics Studio
- Cómo encontrar artículos sobre consciencia y robótica
- Robótica Cognitiva
- Teoría del Espacio de Trabajo Global
- Modelo de Versiones Múltiples
- Teorías de Orden Superior sobre la Consciencia
- Tropiezo de Asimo
- Mula Robótica
- ICybie bailando
Add as favourites (70) | Cite este artículo en su sitio | Views: 1844 | E-Mail
Solo los usuarios registrados pueden agregar sus comentarios. Por favor, vaya a login, o regístrese. Powered by AkoComment Tweaked Special Edition v.1.4.4 |