Реализовать пользовательский логгер c# в GroupDocs.Redaction для .NET

Эффективное управление редактированием документов имеет решающее значение, особенно при работе с конфиденциальной информацией. В этом руководстве вы узнаете как реализовать пользовательский логгер c# с GroupDocs.Redaction для .NET, получив полный контроль над журналированием, обработкой ошибок и аудиторскими следами.

Быстрые ответы

  • Что делает пользовательский логгер c#? Он фиксирует ошибки, предупреждения и информационные сообщения во время редактирования.
  • Какая библиотека предоставляет интерфейс ILogger? GroupDocs.Redaction для .NET.
  • Можно ли сохранить отредактированный документ без растеризации? Да — используйте redactor.Save(..., new Options.RasterizationOptions { Enabled = false }).
  • Нужна ли лицензия для использования в продакшене? Для продакшена требуется полная лицензия; доступна пробная версия для оценки.
  • Совместим ли этот подход с .NET Core / .NET 6+? Абсолютно — тот же API работает как в .NET Framework, так и в .NET Core/5/6.

Что такое пользовательский логгер c#?

Пользовательский логгер c# — это класс, реализующий интерфейс ILogger, предоставляемый GroupDocs.Redaction. Он позволяет направлять сообщения журнала туда, где вам нужно — в консоль, файл, базу данных или внешние системы мониторинга — обеспечивая ясный обзор процесса редактирования.

Зачем использовать пользовательское журналирование .net с GroupDocs.Redaction?

  • Соответствие и аудит: Подробные журналы удовлетворяют нормативные требования.
  • Видимость ошибок: LogError и LogWarning предоставляют мгновенную обратную связь о проблемах.
  • Гибкость интеграции: Перенаправляйте журналы в существующие .NET фреймворки журналирования (Serilog, NLog и др.).

Требования

  • GroupDocs.Redaction для .NET установлен (см. раздел установки ниже).
  • Среда разработки .NET (Visual Studio, VS Code или CLI).
  • Базовые знания C# и знакомство с файловыми потоками.

Установка

.NET CLI

dotnet add package GroupDocs.Redaction

Package Manager

Install-Package GroupDocs.Redaction

NuGet Package Manager UI
Найдите “GroupDocs.Redaction” и установите последнюю версию.

Приобретение лицензии

  • Бесплатная пробная версия: Протестировать API с временной лицензией.
  • Временная лицензия: Получить полный доступ к функциям на ограниченный период.
  • Покупка: Приобрести бессрочную лицензию для продакшн-развертываний.

Пошаговое руководство

Шаг 1: Определить пользовательский класс логгера (log warnings c#)

Создайте класс, реализующий ILogger. Этот класс будет фиксировать ошибки, предупреждения и информационные сообщения.

using System;
using GroupDocs.Redaction;

class CustomLogger : ILogger
{
    public bool HasErrors { get; private set; }

    // Log errors encountered during processing.
    public void LogError(string message)
    {
        Console.WriteLine("Error: " + message);
        HasErrors = true;
    }

    // Log warnings that may not be critical but need attention.
    public void LogWarning(string message)
    {
        Console.WriteLine("Warning: " + message);
    }

    // Log informational messages for tracking normal operations.
    public void LogInfo(string message)
    {
        Console.WriteLine("Info: " + message);
    }
}

Explanation: Флаг HasErrors помогает решить, продолжать ли обработку. Три метода соответствуют трем уровням журналирования, которые потребуются в большинстве сценариев редактирования.

Шаг 2: Подготовить пути к файлам и открыть исходный документ

string sourceFile = Utils.PrepareOutputDirectory("YOUR_DOCUMENT_DIRECTORY");
string outputFile = Utils.GetOutputFile(sourceFile);

Why this matters: Использование вспомогательных методов делает код чистым и гарантирует, что папка вывода существует до попытки сохранить отредактированный документ.

Шаг 3: Применять редактирование, используя пользовательский логгер

using (Stream stream = File.Open(sourceFile, FileMode.Open, FileAccess.ReadWrite))
{
    var logger = new CustomLogger();
    
    using (Redactor redactor = new Redactor(stream, new LoadOptions(), new RedactorSettings(logger)))
    {
        // Apply a redaction to the document.
        redactor.Apply(new DeleteAnnotationRedaction());
        
        if (!logger.HasErrors)
        {
            using (Stream streamOut = File.Open(outputFile, FileMode.OpenOrCreate, FileAccess.ReadWrite))
            {
                // Save changes without rasterizing the output.
                redactor.Save(streamOut, new Options.RasterizationOptions { Enabled = false });
            }
        }
    }
}

Explanation:

  1. Redactor создаётся с RedactorSettings(logger), связывая ваш CustomLogger.
  2. После применения редактирования код проверяет logger.HasErrors. Если ошибок нет, документ сохраняется — демонстрируя логику save redacted document без растеризации.

Распространённые ошибки и устранение неполадок

  • Отсутствует вывод журнала: Убедитесь, что каждый метод Log* правильно переопределён.
  • Исключения доступа к файлам: Убедитесь, что приложение имеет права чтения/записи для путей источника и вывода.
  • Логгер не подключён: Параметр RedactorSettings(logger) обязателен; его отсутствие отключает пользовательское журналирование.

Практические применения

  1. Отчётность по соответствию: Экспортировать записи журнала в CSV или базу данных для аудиторских следов.
  2. Отслеживание ошибок: Быстро находить проблемные файлы, просматривая вывод LogError.
  3. Автоматизация рабочего процесса: Запускать последующие процессы (например, уведомление сотрудника по соответствию) при вызове LogWarning.

Соображения по производительности

  • Своевременно освобождайте потоки для освобождения памяти, особенно при обработке больших пакетов.
  • Отслеживайте CPU и память во время массового редактирования; рассмотрите параллельную обработку документов с осторожной синхронизацией логгера.
  • Следите за обновлениями: Новые версии GroupDocs.Redaction часто включают оптимизации производительности и дополнительные точки журналирования.

Заключение

Реализовав пользовательский логгер c#, вы получаете детальный контроль над каждым шагом конвейера редактирования, упрощая соблюдение стандартов соответствия и отладку проблем. Представленный подход без проблем работает с GroupDocs.Redaction для .NET и может быть расширен для интеграции с любым .NET фреймворком журналирования, который вы уже используете.


Часто задаваемые вопросы

Q: Какова цель пользовательского журналирования с GroupDocs.Redaction?
A: Пользовательское журналирование помогает отслеживать и управлять редактированием для соответствия, отслеживания ошибок и оптимизации рабочего процесса.

Q: Как обрабатывать ошибки с помощью пользовательского логгера?
A: Реализуйте LogError в вашем классе CustomLogger; флаг HasErrors позволяет при необходимости остановить обработку.

Q: Можно ли интегрировать пользовательское журналирование с другими системами?
A: Да, вы можете перенаправлять сообщения журнала в CRM, ERP или централизованные инструменты мониторинга, расширив методы логгера.

Q: Какие распространённые ошибки при реализации пользовательского журналирования?
A: Неправильные реализации методов, отсутствие RedactorSettings(logger) и проблемы с правами доступа к файлам — самые частые.

Q: Как пользовательское журналирование улучшает рабочие процессы редактирования документов?
A: Подробные журналы обеспечивают видимость в реальном времени, упрощают устранение неполадок и удовлетворяют требования аудита.

Ресурсы


Последнее обновление: 2026-03-28
Тестировано с: GroupDocs.Redaction 23.11 for .NET
Автор: GroupDocs