sociales redes mediatica informacion delphi logging
Overseer

delphi - redes - informacion mediatica



Bueno, libre marco de registro de Delphi (8)

¿Alguien puede insinuarme un buen marco de trabajo libre de Delphi? Debe ser fácil de usar y debe admitir diferentes "escritores de registro", incluidos texto sin formato, base de datos y red.


Existe Log4D , otro puerto del marco de registro Java Log4J para Delphi en Sourceforge.

Página del proyecto Log4D en sourceforge

Una descripción de su arquitectura se puede encontrar en CodeCentral y here .

Los archivos de ayuda están disponibles en línea en http://cc.embarcadero.com/item/16446 .

Actualmente se basa en log4j 1.2.12 y es bastante activo y muy fácil de usar. Incluye TLogODSAppender, TLogStreamAppender, TLogFileAppender, TLogRollingFileAppender.

El siguiente proyecto de ejemplo crea un appender de ODS. Si lo ejecuta en el IDE, los mensajes de registro aparecerán en la ventana ''Registro de eventos''.

program Log4Dexample; {$APPTYPE CONSOLE} uses Log4D, SysUtils; var Logger: TLogLogger; begin try // basic configuration - creates a TLogODSAppender (ODS = OutputDebugString) TLogBasicConfigurator.Configure; // set the log level TLogLogger.GetRootLogger.Level := Trace; // create a named logger Logger := TLogLogger.GetLogger(''exampleLogger''); // write log messages Logger.Fatal(''fatal output''); Logger.Error(''error output''); Logger.Warn(''warn output''); Logger.Info(''info output''); Logger.Debug(''debug output''); Logger.Trace(''trace output''); ReadLn; except on E:Exception do begin Writeln(E.Classname, '': '', E.Message); ReadLn; end; end; end.

Escribir appenders es sencillo, aquí hay un ejemplo de un appender de consola simple:

unit LogConsoleAppender; interface uses Log4D; type { Send log messages to console output. } TLogConsoleAppender = class(TLogCustomAppender) protected procedure DoAppend(const Message: string); override; end; implementation { TLogConsoleAppender } procedure TLogConsoleAppender.DoAppend(const Message: string); begin if IsConsole then Write(Message); end; initialization RegisterAppender(TLogConsoleAppender); end.


Hay otro nuevo marco de registro para Delphi , que viene en un solo archivo (nxlogging.pas). nxlogging es un conjunto ligero y potente de clases como log4d (appenders, formaters), pero mucho más fácil de usar. Incluye los archivos adjuntos (archivos continuos, todos en uno solo, etc ...) y un apéndice Tcp también, por lo que puede reenviar sus registros a un servidor de registro central.


Otra alternativa a Codesite es Overseer que es de código abierto y parte del proyecto nexus , pero se mantiene solo, por lo que no requiere que use su framework.


Sé que no es gratis, pero vale la pena el dinero: CodeSite de Raize Software. La calidad tiene su precio! :-)

Siempre me gustó trabajar con CodeSite, especialmente la capacidad de agregar casi cualquier tipo de objetos al registro sin grandes conversiones a un formato de cadena que a menudo era muy útil.

De nuevo: no es gratis, pero vale la pena su precio en oro, si realmente se toma en serio el registro y la visualización de esos registros de calidad de producción.

Bagazo


Se me ha concedido acceso para actualizar el proyecto inactivo Log4Delphi y he acumulado 4 años de correcciones de errores y parches en la última versión 0.8 disponible en Source-forge. Utilizo esta biblioteca en producción y la encontré muy estable, confiable y fácil de usar.

Página de descargas de Log4Delphi


También soy un gran admirador de CodeSite, pero si buscas gratis, ¿qué tal OutputDebugString con Delphi IDE o DebugView de SysInternals ?


Una biblioteca de registradores no debe volcar los contenidos de forma síncrona. Eso ralentizará la aplicación. En cambio, necesita almacenar el contenido y volcarlo cuando se vacíe.

También debería ser seguro para subprocesos y capaz de volcar los contenidos de diferentes subprocesos. (Y preferiblemente, también puede registrar la identificación del hilo)

También debe ser flexible y capaz de registrar múltiples formatos de salida.

Aquí hay una biblioteca que hace todo esto: loggerpro