FileLoggingSession Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет назначение зарегистрированных сообщений из экземпляров 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
- Наследование
- Атрибуты
- Реализации
Требования к Windows
Семейство устройств |
Windows 10 (появилось в 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (появилось в v1.0)
|
Комментарии
Используйте класс FileLoggingSession для непрерывного ведения журнала сообщений и данных в файл во время выполнения приложения. Файлы журналов можно просмотреть с помощью набора средств производительности Windows (WPT) и других служебных программ, таких как tracerpt.exe.
Добавьте экземпляры LoggingChannel в FileLoggingSession и вызовите методы экземпляра FileLoggingSession для удаления каналов, удаления и выполнения других операций. Количество каналов в настоящее время не ограничено.
Примечание
В Windows Server 2012 R2 и Windows 8.1 каждое приложение ограничено 4 активными каналами, а каналы должны иметь уникальные имена.
Класс FileLoggingSession отправляет зарегистрированные сообщения в файлы диска, когда буфер заполнен или пользователь вызывает CloseAndSaveToFileAsync. Класс FileLoggingSession использует последовательное ведение журнала, что означает, что все сообщения отправляются в файл диска и сохраняется последовательный журнал сообщений. Это отличается от класса LoggingSession , который отправляет зарегистрированные сообщения на диск по запросу, т. е. когда приложение обнаруживает проблему и сохраняет сообщения в памяти для анализа.
Используйте класс FileLoggingSession , если вы знаете, что все сообщения необходимо сохранить, как правило, в течение длительного периода времени, и когда приложение не может быть обремечено действиями по сохранению по запросу. Как и класс LoggingSession , экземпляры LoggingChannel добавляются в экземпляр FileLoggingSession , а экземпляр FileLoggingSession имеет методы для удаления каналов и удаления. Экземпляры FileLoggingSession инициализируются с помощью делегата для нового обратного вызова файла, который уведомляет приложение о смене файла журнала. Функция вызывает делегат, когда текущий внутренний файл журнала достигает емкости и создается новый файл для непрерывного последовательного ведения журнала. Обратный вызов делегата также можно вызвать в пределах приостановки или при удалении FileLoggingSession .
При вызове события LogFileGenerated приложение получает файл StorageFile , представляющий закрытый файл журнала. Приложение может пересылать файл журнала для обработки определенным приложением способом. После этого сеанс продолжает вести журнал в только что созданный и открытый текущий файл журнала. Когда этот файл журнала достигает емкости, делегат обратного вызова снова вызывается для нового файла, и процесс повторяется.
Завершив ведение журнала событий, вызовите метод CloseAndSaveToFileAsync , чтобы получить последний файл журнала, так как последний файл журнала может быть по-прежнему открыт, если он еще не достиг емкости. Вы также можете использовать CloseAndSaveToFileAsync , чтобы закрыть сеанс и получить доступ к последнему файлу журнала. Обратите внимание, что если последний файл журнала был пустым или если все файлы журнала уже были зарегистрированы методом LogFileGenerated , метод CloseAndSaveToFileAsync вернет значение NULL.
Файлы журналов создаются в папке ApplicationData\Logs .
Имя каждого файла журнала основано на имени сеанса и индексе. Индекс сбрасывается при каждом создании нового сеанса. Каждый раз, когда файл журнала достигает максимального размера, он закрывается, индекс увеличивается и открывается новый файл журнала с использованием нового индекса. (Как следствие, при каждом перезапуске приложения начинается перезапись файлов журнала, созданных предыдущим экземпляром приложения.)
Вы можете добавить обработчик для события LogFileGenerated , чтобы приложение уведомлялось при каждом закрытии файла журнала.
Если не использовать событие LogFileGenerated или метод CloseAndSaveToFileAsync , FileLoggingSession не будет удалять устаревшие файлы журнала (хотя новый сеанс может перезаписать файлы, созданные предыдущим сеансом). Ваше приложение отвечает за поиск и очистку файлов журнала по мере необходимости.
Перед предоставлением файла журнала приложению с помощью события LogFileGenerated или метода CloseAndSaveToFileAsync он будет переименован в специальное имя файла журнала. Всегда используется одно и то же имя файла журнала, поэтому новые журналы будут перезаписывать старые журналы. Таким образом, методы События LogFileGenerated и CloseAndSaveToFileAsync помогают предотвратить устаревание файлов журнала от использования места в папке ApplicationData.
FileLoggingSession закроет текущий файл журнала и запустит новый файл журнала, когда текущий файл журнала достигнет 256 КБ.
Конструкторы
FileLoggingSession(String) |
Инициализирует новый экземпляр класса FileLoggingSession . |
Свойства
Name |
Возвращает имя сеанса ведения журнала. |
Методы
AddLoggingChannel(ILoggingChannel) |
Добавляет канал ведения журнала в текущий сеанс ведения журнала. |
AddLoggingChannel(ILoggingChannel, LoggingLevel) |
Добавляет канал ведения журнала в текущий сеанс ведения журнала. Канал ведения журнала принимает только события, уровень ведения журнала которых превышает указанный уровень ведения журнала. |
Close() |
Завершает текущий сеанс ведения журнала. |
CloseAndSaveToFileAsync() |
Завершает текущий сеанс ведения журнала и сохраняет его в файл. |
Dispose() |
Выполняет определяемые приложением задачи, связанные с удалением, высвобождением или сбросом неуправляемых ресурсов. |
RemoveLoggingChannel(ILoggingChannel) |
Удаляет указанный канал ведения журнала из текущего сеанса ведения журнала. |
События
LogFileGenerated |
Возникает при сохранении файла журнала. |