Condividi tramite


Uso dei file di log

Per aprire un file di log per la lettura, chiamare PdhOpenQuery e specificare un percorso del file di log. Per aprire un file di log per la scrittura, è necessario chiamare PdhOpenLog. Per chiudere un file di log, chiamare PdhCloseQuery o PdhCloseLog a seconda della funzione usata per aprire il file di log.

Lettura da un file di log

La lettura dei dati sulle prestazioni da un file di log corrisponde alla lettura dei dati da un'origine in tempo reale, è possibile aprire una query, aggiungere contatori alla query e chiamare PdhCollectQueryData per raccogliere un esempio dal file di log. PdhCollectQueryData restituisce PDH_NO_MORE_DATA quando si raggiunge la fine del file di log.

Ogni esempio nel file di log contiene un timestamp per quando è stato originariamente raccolto e scritto nel file di log. Per recuperare il timestamp per il primo e l'ultimo esempio nel file di log, chiamare la funzione PdhGetDataSourceTimeRange . Per limitare gli esempi letti dal log a un intervallo di tempo specifico, vedere Impostazione di un intervallo di tempo per una query.

Se non si conosce quali oggetti prestazioni e contatori esistono nel file di log, è possibile chiamare PdhEnumObjects per determinare l'elenco di oggetti. Dato un oggetto, è possibile chiamare PdhEnumObjectItems o PdhExpandWildCardPath per recuperare un elenco delle istanze e dei contatori dell'oggetto contenuti nel file di log.

Se si chiama PdhEnumObjectItems, usare l'istanza e gli elenchi di contatori per creare un percorso per ogni possibile combinazione di istanze e contatori. Quando si chiama PdhAddCounter per aggiungere il contatore alla query, la funzione avrà esito negativo se il file di log non contiene la combinazione specificata.

Se si usa PdhExpandWildCardPath, è possibile creare un percorso contenente un carattere jolly per il nome e il contatore dell'istanza, ad esempio \object(*)\*. La funzione restituisce PDH_INVALID_PATH se l'oggetto non contiene un'istanza. In questo caso, chiamare PdhExpandWildCardPath usando un carattere jolly solo per contatore, ad esempio \object\*.

I sistemi operativi più recenti possono leggere i file di log generati nei sistemi operativi meno recenti; tuttavia, i file di log creati in Windows Vista e nei sistemi operativi successivi non possono essere letti nei sistemi operativi precedenti.

Per un esempio che legge i dati da un file di log, vedere Lettura dei dati sulle prestazioni da un file di log.

Lettura da più file di log

Se è necessario creare una query che legge da diversi file di log, chiamare PdhBindInputDataSource per associare i file di log insieme. È quindi necessario usare funzioni PDH che terminano in 'H', ad esempio PdhOpenQueryH.

Scrittura in un file di log

Prima di scrivere in un file di log, chiamare PdhOpenQuery per creare una query e specificare l'origine dei dati delle prestazioni, dati in tempo reale o file di log. Aggiungere quindi i contatori che si desidera eseguire una query.

Per aprire il file di destinazione, chiamare PdhOpenLog. Specificare la query quando si apre il file di log. Per raccogliere i dati sulle prestazioni e scriverlo nel file di log, chiamare PdhUpdateLog.

Se i dati del contatore vengono scritti in file di log delimitati da virgole (.csv) o delimitati da tabulazione (.tsv) e il percorso contiene un'istanza con caratteri jolly, il percorso viene espanso e solo quelle esistenti al momento dell'espansione del percorso vengono incluse nel file di log. Tuttavia, per i file di log binari (.blg) o SQL, il carattere jolly non viene espanso in modo che il file di log contenga istanze create durante la registrazione.

Per un esempio che scrive i dati in un file di log, vedere Scrittura di dati sulle prestazioni in un file di log.

Compressione di un file di log

È possibile usare la funzione PdhComputeCounterStatistics per comprimere un file di log. Ad esempio, leggere dieci record da un file di log, chiamare PdhComputeCounterStatistics per calcolare il valore medio e quindi scrivere il valore medio in un file di log di output.

Nell'argomento seguente vengono fornite informazioni aggiuntive sull'uso di un file di log.