2010-05-27 14 views
7

Utilizzando Delphi 7, mi chiedo se c'è un componente gratuito che raccoglierà informazioni diagnostiche come la mia applicazione viene eseguita in un sito remoto e mi aiuterà a segnalazioni di errori di debug.Delphi: Applicazione registrazione degli errori nel campo

Forse registra ogni voce di menu selezionata, controllo fatto clic, immissione di testo, ecc.? Forse scarica la pila in caso di incidente. Forse lo fa qualcos'altro ...

non mi dispiace il codice aggiungendo (per esempio, all'inizio e alla fine di ogni procedura), come che potrebbe generare informazioni più utili di un sistema completamente automatico.

Non sono sicuro se la soluzione dovrebbe "phone home" o se è sufficiente per produrre un file di testo che può essere inviato via email a me.

Qualche suggerimento?

+1

domanda simile: http://stackoverflow.com/questions/84798/whats-the-best-logging-package-for-delphi – mjn

+0

Tu dici che "non si mente l'aggiunta di codice al via di ogni procedura "... In realtà, dovresti fare di testa a quel genere di cose, perché questo è esattamente il tipo di cosa che porta a un codice estremamente difficile da manitain nel tempo. –

risposta

7

Io uso EurekaLog http://www.eurekalog.com

Lo fa lo stack, il contenuto della memoria, altre applicazioni in esecuzione delle chiamate, una buona descrizione della macchina, sistema operativo, patch, ecc .., può (con il permesso dell'utente, e se configurato per farlo) fai uno screenshot, chiedi l'input all'utente (cosa stavi facendo quando è andato in crash?), ecc. Può inviare il dump via e-mail, postare su http, postare direttamente su tracker come Mantis e FogBugz, o lascialo semplicemente sul sistema. È fantastico e ben supportato.

Inoltre, ecco un link a una domanda simile Compare Delphi Exception Handlers

+0

Grazie, sembra fantastico (specialmente il collegamento) +1 – Mawg

+0

+1 per EurekaLog! Mi ha aiutato a correggere i bug in pochi minuti quando non avevo idea di dove cominciare. – stg

12

con il debuging schianto uno sguardo al MadExcept
http://www.madshi.net/madExceptDescription.htm

MadExcept è stato costruito per aiutare a localizzare gli arresti nel software. Ogni volta che c'è un crash/eccezione nel tuo programma, madExcept lo prenderà automaticamente, analizzerà, raccoglierà molte informazioni utili e darà all'utente finale la possibilità di inviarti una segnalazione completa.

gratuito per uso non commerciale, poco costoso per usi commerciali

o JclDebug dal Codice Jedi Biblioteca

http://www.delphi-jedi.org/

Un post di blog su di esso può essere trovato qui http://www.gnegg.ch/2002/12/jcldebug/

EDIT: Questo sembra essere un ottimo esempio su come usare JCLDebug http://robstechcorner.blogspot.com/2009/04/finding-hard-to-reproduce-errors.html

4

Hai guardato il JclDebug open-source da Project Jedi? Ecco uno nice succinct write-up on JclDebug.

Immaginate si potrebbe ottenere una dettagliata errori relazione contenente una piena stack di cui l'errore si è verificato combinate con le informazioni relative al file e numero di riga. Questa relazione potrebbe essere generato direttamente sul computer dell'utente e essere inviato via e-mail o direttamente via Internet, utilizzando una procedura personalizzato - anche direttamente voci creando nel bugtracking-strumento che si sta utilizzando.

Questo ed altro è reso possibile dalla Jedi progetto - più accuratly, il JCL-sottoprogetto con il suo JclDebug-quadro. Una volta completata l'installazione del pacchetto , una nuova opzione di menu denominata "Inserisci dati di debug JCL" verrà aggiunta al numero nel menu Progetto del tuo Delphi-IDE .

2

C'è una grande porting delphi dei più conosciuti quadro di registrazione opensource scritto in Java, Log4J: si chiama Log4Delphi.

http://log4delphi.sourceforge.net

ho scaricato, esteso e utilizzato con i miei progetti con successo.

Le migliori caratteristiche: opensource, licenza Apache, molto ben documentato, semplice estenderlo, power design: con il concetto di appender, è possibile creare il proprio appender personalizzato e utilizzarlo per inviare i dati di registrazione dal computer del cliente remoto a il trimestre principale utilizzando il protocollo UDP.

provate, e fatemi sapere :-)

PS: il progetto sembra essere sospeso, ma è maturo e avevo usato senza problemi di sovraccarico della memoria e sovraccarico della CPU.

+0

Sembra fantastico, grazie (+1). Le tue estensioni sono utili solo a te o qualcosa che potresti postare per tutti? – Mawg

+0

Le mie estensioni sono modellate per adattarsi alla struttura dei dati aziendali, ma ho aggiunto anche un appender UDP (creato con indy) con funzionalità di crittografia per inviare dati di registrazione sensibili su Internet. Se sei più interessato alle fonti, fammi sapere. – morde

+0

Un'altra porta è chiamata log4d, disponibile su Sourceforge all'indirizzo http://sourceforge.net/projects/log4d/, sembra essere in fase di sviluppo – mjn

2

Il progetto log4Delphi è rimasto inattivo per 4 anni ma mi è stato concesso l'accesso per aggiornare il progetto dormiente Log4Delphi e ho eseguito il rollup di 4 anni di correzioni di errori 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

Non sembra molto attivo. Lo consiglieresti nel 2017? – Mawg

+1

@Mawg Dirò non troppo nella comunità di Delphi è attivo come una volta ma sì lo consiglierei comunque. – Melloware

Problemi correlati