2009-10-15 8 views
25

Dove sarebbe la migliore posizione "standard" per inserire il file di registro di debug di un'applicazione in un ambiente utente Windows?Dove memorizzare un file di registro dell'applicazione su Windows

In questo caso particolare, è un'applicazione che viene eseguita una volta e che potrebbe andare storta. Verrà eseguito dai tipi di amministratore di sistema che potrebbero dover ispezionare il registro dopo l'esecuzione dell'applicazione. Ogni volta che si esegue l'applicazione, viene creato un nuovo file di registro.

opzioni che sono state galleggiavano finora includono: directory

  1. Il programma
  2. del desktop dell'utente
  3. directory Dati applicazione locale dell'utente.

Ho il mio preferito, ma mi chiedevo quale fosse il consenso di SO.

Nota: questo è simile a this question, ma abbiamo a che fare con un'applicazione che è probabile che venga eseguita una sola volta da un utente.

+0

Qual è lo scopo del file di registro? Questo potrebbe guidare la risposta. Chi lo guarderebbe? Sarebbe guardato nella maggior parte dei casi? Hai visto solo se c'è un problema? – noctonura

+0

Lo strumento è uno strumento di aggiornamento del database e fa un sacco di cose nel tuo database. Il registro mostra tutto ciò che fa, inclusi gli errori. La maggior parte degli utenti probabilmente la guarda solo in caso di errore, ma ci aspettiamo che molti DBA vorranno sapere esattamente cosa è stato fatto. Quindi vorranno andare a cercare il registro e guardarlo. –

+0

Vedere anche [questa domanda] (http://stackoverflow.com/questions/269893/best-place-to-store-config-files-and-log-files-on-windows-for-my-program) –

risposta

13

La directory Dati applicazioni sembra essere il luogo perfetto, ma è un'area quasi invisibile. Devi dare ai tuoi utenti un modo semplice per raggiungerlo.

Lo script di installazione deve creare una cartella di registro nell'area Dati applicazione per il programma e includere un collegamento alla cartella nel menu Start.

+2

La cartella AppData è il posto migliore, ma ha bisogno di un collegamento dal programma o dal menu di avvio per consentire un facile accesso, anche per le persone di tipo admin. Perché non apri semplicemente il file di registro alla fine della corsa o apri una finestra di Explorer per la cartella AppData? La cartella ProgramFiles è errata, Vista in avanti lo vede come letto solo se non si è un programma di installazione. I documenti utente e desktop sono scelte sbagliate, dovrebbero essere lasciati liberi per i documenti che l'utente ha creato (dattiloscritto, scaricato) non registri. – Martin

+0

Mi sembra una buona idea ... –

+0

Potresti per favore approfondire questa risposta? Come denominare la cartella di registro che sto creando in Dati applicazioni? Il nome della mia app? Il nome dell'organizzazione? Qual è la convenzione di Windows? – Thunderforge

1

cartella Temp di Windows

+6

Perché ? Chi potrebbe mai cercare un file di registro lì. Non è un file temporaneo, IMO. –

+1

Ha detto "un'applicazione che è probabile che venga eseguita una sola volta da un utente" con queste informazioni penso che sia un registro temporaneo e un'applicazione temporanea. – Zote

4

il luogo "standard" per il registro sarebbe la directory AppData. Tuttavia, dipende da te dove vuoi salvarli. Poiché sono amministratori (utenti esperti), non dovrebbero esserci problemi nell'archiviazione dei registri nella stessa directory dell'applicazione da eseguire. Anche nei MyDocuments dell'utente sarebbe un buon grido.

+3

Un buon punto, ma scoraggerei la registrazione di cose in My Documents o nel Desktop - quelle sono le posizioni dell'utente e non credo che le applicazioni debbano scrivere nulla su di esse a meno che non siano dirette a farlo dall'utente. –

+0

Non è insolito per le applicazioni (per impostazione predefinita) salvare gli elementi nella cartella MyDocuments, ad es. modelli. Visual Studio fa questo come fa Delphi. – James

+0

Personalmente mi infastidisco quando le cose salvano le cose in Documenti, ma sono io. Uno degli argomenti contro AppData è che non è facilmente "individuabile" dagli utenti, quindi i miei documenti potrebbero essere migliori ... –

2

1. L'elenco programmi < - non buono. Idealmente avrai permessi RX solo su questa cartella.

2. Il desktop dell'utente < - tecnicamente si può fare, ma questa idea non mi piace. Desktop inquinante ... Io, come utente, non mi piace.

3.La directory dei dati dell'applicazione locale dell'utente. < - migliore

La mia preferenza è una sottodirectory nella directory del programma (con un nome chiaro come "DebugLog" o qualcosa di simile). Le autorizzazioni su tale sottodirectory dovrebbero consentire la creazione e la scrittura di file ("Modifica" andrà bene)

+2

L'utilizzo di qualsiasi cosa nella Directory programmi è una cattiva idea perché è condiviso da qualsiasi utente che utilizza la macchina. Verrà quindi concesso a chiunque l'autorizzazione di lettura/scrittura a questa directory DebugLog? Poi hai problemi di sicurezza, utenti diversi sovrascrivono i file di registro di ciascuno, ecc ... Il tuo # 3 è la risposta giusta. IMHO. – noctonura

+0

Hai perfettamente ragione. In questo caso particolare però (logging di debug) una sottodirectory è accettabile a mio avviso. (Questo non è un modo standard di usare questo software, ma piuttosto un'eccezione). Quindi è OK permettere che il log di debug sia memorizzato in una sottodirectory di Debug. I log di debug dovrebbero essere creati con nomi univoci per evitare la sovrascrittura. – DmitryK

+0

Come verrà creato l'utente della cartella in Programmi quando esegue l'installazione. –

4

Nell'organizzazione lavoro per cui usiamo la directory (% TEMP% o% TMP%) \ CompanyOrProductName \ Logs Utilizzo% APPDATA% potrebbe essere problematico con i profili di roaming se i registri sono numerosi o enormi: rallenta il loro processo di login ...

+1

Buon punto. Qualcosa da tenere a mente quando si scaricano oggetti in AppData. –

+11

Considera% LOCALAPPDATA% - l'equivalente non di roaming. –

+1

Non memorizzare un file di registro in una cartella TEMP. I file in TEMP sono pensati per essere temporanei e possono essere cancellati in qualsiasi momento. Lo scopo di un log è di rimanere lì fino a quando succede qualcosa di brutto o devi consultarlo. Non vuoi che il tuo registro sia cancellato casualmente dal sistema e sparisca il giorno in cui ne hai bisogno. Se i registri diventano troppo grandi, è necessario configurare l'applicazione per utilizzare un registro circolare o eliminare i file meno recenti dopo un po 'di tempo. –

1

Se si EXPECT qualcosa non va messo nella directory Dati applicazione locale dell'utente.

Se non lo si desidera e si desidera effettuare il log in ogni modo, potrei pensare di utilizzare realmente la directory temporanea. Il ragionamento per questo è semplice. Se l'applicazione viene eseguita una volta sola, lascerai il cestino nella directory Dati applicazioni altrimenti non ne avrai più bisogno. Nella temp hai almeno CHANCE che verrà ripulito più tardi.

BTW: IMHO il migliore sarebbe non creare il log AS A FILE a tutti (accedere alla memoria) finché qualcosa non va storto. Quindi è ancora possibile offrire una finestra di dialogo in cui l'utente seleziona dove salvare il registro.

Problemi correlati