2009-07-27 11 views
21

qualcuno mi può suggerire un buon framework di registrazione Delphi gratuito? Dovrebbe essere facile da usare e dovrebbe supportare diversi "scrittori di registri" tra cui testo normale, database e rete.Buono, gratuito framework di registrazione Delphi

+1

Non può fare un coment qui ... Raccontare dai nomi, Log4delphi e Log4D sono entrambi ispirati e modellati Log4J Poi come sono diversi e come scegliere tra ? –

risposta

7

So che non è gratuito, ma ne vale la pena: CodeSite di Raize Software. La qualità ha il suo prezzo! :-)

Mi è sempre piaciuto lavorare con CodeSite, in particolare la possibilità di aggiungere praticamente qualsiasi tipo di oggetto al log senza enormi conversioni in un formato di stringa è stato spesso molto utile.

Ancora: non è gratuito, ma vale il suo prezzo in oro, se si è seriamente interessati alla registrazione di qualità di produzione e alla visualizzazione di tali registri.

Marc

+7

Non sono d'accordo con questo, anche se la mia opinione è ovviamente molto di parte, dato che sono uno degli sviluppatori dietro lo strumento di registrazione SmartInspect. Uno dei motivi per cui CodeSite non è quasi mai la soluzione migliore è che devi distribuire un servizio Dispatcher esterno con la tua applicazione per registrare i dati (sì, ci sono * Protocolli diretti per CodeSite ora, ma sono molto limitati e lenti) . Ci sono altri motivi contro CodeSite, ma è uno dei motivi principali per cui gli utenti passano ad altri strumenti nella mia esperienza. –

+0

Vedo il tuo punto sul servizio Dispatcher, che potrebbe essere un inconveniente a seconda del tuo scenario. Quali altri motivi vorresti avere, però? –

+1

marc_s: Mi dispiace per il downvote, sono d'accordo che non era il modo migliore per comunicare il mio disaccordo con la tua dichiarazione (ho rimosso il downvote), e non era inteso come personale. –

3

Sono un grande fan di CodeSite, troppo, ma se siete alla ricerca di libero, come su OutputDebugString sia con Delphi IDE o DebugView from SysInternals.

3

Un'altra alternativa per Google Code è Overseer che è open source e parte della nexus project, ma si trova da solo in modo da non richiede a usa la loro struttura.

1

C'è Log4D, un'altra porta di Java Log4J logging framework per Delphi a Sourceforge.

Log4D project page at sourceforge

Una descrizione della sua architettura può essere trovato CodeCentral e here.

I file di aiuto sono disponibili online allo http://cc.embarcadero.com/item/16446.

Attualmente è basato su log4j 1.2.12 e abbastanza attivo e molto facile da usare. Include TLogODSAppender, TLogStreamAppender, TLogFileAppender, TLogRollingFileAppender.

Il seguente esempio di progetto crea un appender ODS. Se lo si esegue nell'IDE, i messaggi di registro verranno visualizzati nella finestra "Registro eventi".

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. 

appenders scrittura è semplice, ecco un esempio di un semplice appender console:

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. 
+0

questo progetto è stato abbandonato. – Ampere

6

mi è stato concesso l'accesso per aggiornare il progetto Log4Delphi dormiente ed io abbiamo arrotolato 4 anni di bugfix e patch nell'ultima versione 0.8 disponibile su Source-forge. Uso questa libreria in produzione e l'ho trovata molto stabile, affidabile e facile da usare.

Log4Delphi Downloads Page

+0

Sembra che non ci siano aggiornamenti dal 2010. – Ampere

+1

Kenny, Come in molti framework Delphi, il supporto e la manutenzione stanno cominciando a rimanere invariati mentre la gente smette di usare Delphi. C'era un tizio che ha creato un clone di Log4Delphi e lo stava aggiornando, ma non riesco a migliorare la sua pagina. – Melloware

2

C'è un altro nuovo quadro di registrazione per Delphi, che viene in un unico file ( nxlogging.pas). nxlogging è un insieme leggero e potente di classi come log4d (appendici, formattatori), ma molto più facile da usare. Include appendici di file (file in rotazione, tutto in uno solo, ecc ...) e un appender TCP, in modo da poter inoltrare i log a un logserver centrale.

+1

Link: http://www.navimatix.de/loesungen/log-server/logging-fuer-delphi-nxlogging/ – mjn

+0

@mjn Grazie, sembra molto buono. – vladon

+2

@mjn Sfortunatamente, è in tedesco. Il sito può essere tradotto con Google, ma non con le applicazioni stesse. – vladon

0

Una libreria di logger non deve eseguire il dump dei contenuti in modo sincrono. Ciò rallenterà l'applicazione. Invece, ha bisogno di bufferizzare i contenuti e scaricarli quando viene scaricato.

Dovrebbe inoltre essere thread-safe e in grado di scaricare il contenuto da thread diversi. (E preferibilmente anche possibile registrare l'ID del thread)

Dovrebbe anche essere flessibile e in grado di registrare più formati di output.

Ecco una libreria che fa tutto questo: loggerpro

Problemi correlati