FileLoggingSession Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mewakili tujuan pesan yang dicatat dari instans LoggingChannel .
public ref class FileLoggingSession sealed : IFileLoggingSession, IClosable
/// [Windows.Foundation.Metadata.Activatable(Windows.Foundation.Diagnostics.IFileLoggingSessionFactory, 65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class FileLoggingSession final : IFileLoggingSession, IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(Windows.Foundation.Diagnostics.IFileLoggingSessionFactory, 65536, "Windows.Foundation.UniversalApiContract")]
class FileLoggingSession final : IFileLoggingSession, IClosable
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Foundation.Diagnostics.IFileLoggingSessionFactory), 65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class FileLoggingSession : System.IDisposable, IFileLoggingSession
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Foundation.Diagnostics.IFileLoggingSessionFactory), 65536, "Windows.Foundation.UniversalApiContract")]
public sealed class FileLoggingSession : System.IDisposable, IFileLoggingSession
function FileLoggingSession(name)
Public NotInheritable Class FileLoggingSession
Implements IDisposable, IFileLoggingSession
- Warisan
- Atribut
- Penerapan
Persyaratan Windows
Rangkaian perangkat |
Windows 10 (diperkenalkan dalam 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v1.0)
|
Keterangan
Gunakan kelas FileLoggingSession untuk mencatat pesan dan data ke file terus menerus saat aplikasi Anda berjalan. Anda dapat melihat file log dengan menggunakan Windows Performance Toolkit (WPT) dan utilitas lain seperti tracerpt.exe.
Tambahkan instans LoggingChannel ke FileLoggingSession, dan panggil metode instans FileLoggingSession untuk menghapus saluran, membuang, dan melakukan operasi lainnya. Jumlah saluran saat ini tidak terbatas.
Catatan
Di Windows Server 2012 R2 dan Windows 8.1, setiap aplikasi dibatasi hingga 4 saluran aktif, dan saluran harus memiliki nama yang unik.
Kelas FileLoggingSession mengirim pesan yang dicatat ke file disk ketika buffer diisi atau ketika pengguna memanggil CloseAndSaveToFileAsync. Kelas FileLoggingSession menggunakan pengelogan berurutan, yang berarti bahwa semua pesan dikirim ke file disk, dan riwayat pesan berurutan dipertahankan. Ini berbeda dari kelas LoggingSession , yang mengirim pesan yang dicatat ke disk sesuai permintaan, yaitu ketika aplikasi mendeteksi masalah dan menyimpan pesan dalam memori untuk analisis.
Gunakan kelas FileLoggingSession saat Anda tahu bahwa semua pesan perlu disimpan, biasanya dalam jangka waktu yang lama, dan kapan aplikasi tidak dapat dibebani dengan langkah-langkah penghematan sesuai permintaan. Seperti kelas LoggingSession , instans LoggingChannel ditambahkan ke instans FileLoggingSession , dan instans FileLoggingSession memiliki metode untuk menghapus saluran dan membuang. Instans FileLoggingSession diinisialisasi dengan delegasi ke panggilan balik file baru, yang memberi tahu aplikasi ketika rollover file log telah terjadi. Fitur ini memanggil delegasi ketika file log internal saat ini telah mencapai kapasitas dan file baru sedang dibuat untuk pencatatan berurutan yang berkelanjutan. Panggilan balik delegasi juga dapat dipanggil pada batas yang ditangguhkan, atau ketika FileLoggingSession dibuang.
Saat peristiwa LogFileGenerated dipanggil, aplikasi menerima StorageFile yang mewakili file log yang sekarang ditutup. Aplikasi ini dapat meneruskan file log untuk diproses dengan cara yang ditentukan aplikasi. Setelah ini, sesi melanjutkan pengelogan ke file log yang baru dibuat dan sekarang dibuka. Ketika file log ini mencapai kapasitas, delegasi panggilan balik dipanggil lagi untuk file baru, dan proses berulang.
Ketika Anda selesai mencatat peristiwa, panggil CloseAndSaveToFileAsync untuk mendapatkan file log terakhir karena file log terakhir mungkin masih terbuka jika belum mencapai kapasitas. Anda juga dapat menggunakan CloseAndSaveToFileAsync untuk menutup sesi dan mendapatkan akses ke file log terakhir. Perhatikan bahwa jika file log terakhir kosong, atau jika semua file log telah dilaporkan oleh metode LogFileGenerated , metode CloseAndSaveToFileAsync akan mengembalikan null.
File log dibuat di folder ApplicationData\Logs .
Nama setiap file log didasarkan pada nama sesi ditambah indeks. Indeks direset setiap kali sesi baru dibuat. Setiap kali file log mencapai ukuran maksimum, file tersebut ditutup, indeks bertahap, dan file log baru dibuka menggunakan indeks baru. (Sebagai konsekuensinya, setiap kali Anda menghidupkan ulang aplikasi, aplikasi akan mulai menimpa file log yang dihasilkan oleh instans aplikasi sebelumnya.)
Anda dapat menambahkan handler untuk peristiwa LogFileGenerated sehingga aplikasi Anda diberi tahu setiap kali file log ditutup.
Jika Anda tidak menggunakan peristiwa LogFileGenerated atau metode CloseAndSaveToFileAsync , FileLoggingSession tidak akan menghapus file log basi (meskipun sesi baru dapat menimpa file yang dihasilkan oleh sesi sebelumnya). Aplikasi Anda bertanggung jawab untuk menemukan dan membersihkan file log sesuai kebutuhan.
Sebelum file log diberikan ke aplikasi melalui peristiwa LogFileGenerated atau metode CloseAndSaveToFileAsync , file tersebut diganti namanya menjadi nama file log khusus. Nama file log yang sama selalu digunakan, sehingga log baru akan menimpa log yang lebih lama. Dengan cara ini, peristiwa LogFileGenerated dan metode CloseAndSaveToFileAsync membantu mencegah file log kedaluarsa membuang-buang ruang di folder ApplicationData.
FileLoggingSession akan menutup file log saat ini dan memulai file log baru ketika file log saat ini mencapai 256KB.
Konstruktor
FileLoggingSession(String) |
Menginisialisasi instans baru kelas FileLoggingSession . |
Properti
Name |
Mendapatkan nama sesi pengelogan. |
Metode
AddLoggingChannel(ILoggingChannel) |
Menambahkan saluran pengelogan ke sesi pengelogan saat ini. |
AddLoggingChannel(ILoggingChannel, LoggingLevel) |
Menambahkan saluran pengelogan ke sesi pengelogan saat ini. Saluran pengelogan hanya menerima peristiwa yang memiliki tingkat pengelogan pada atau di atas tingkat pengelogan yang ditentukan. |
Close() |
Mengakhiri sesi pengelogan saat ini. |
CloseAndSaveToFileAsync() |
Mengakhiri sesi pengelogan saat ini dan menyimpannya ke file. |
Dispose() |
Melakukan tugas yang ditentukan aplikasi yang terkait dengan membebaskan, melepaskan, atau mereset sumber daya yang tidak terkelola. |
RemoveLoggingChannel(ILoggingChannel) |
Menghapus saluran pengelogan yang ditentukan dari sesi pengelogan saat ini. |
Acara
LogFileGenerated |
Dimunculkan saat file log disimpan. |