Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
---
date: '2026-03-28'
description: تعلم كيفية تنفيذ مسجل مخصص بلغة C# في GroupDocs.Redaction لـ .NET، مما
يتيح تسجيل مخصص مفصل في .NET وتسهيل إعداد تقارير الامتثال.
keywords:
- custom logger c#
- custom logging .net
- save redacted document
- log warnings c#
title: تنفيذ مسجل مخصص C# في GroupDocs.Redaction لـ .NET
type: docs
url: /ar/net/advanced-redaction/custom-logging-groupdocs-redaction-net/
weight: 1
---

# تنفيذ مسجل مخصص 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، أو سطر الأوامر).
- معرفة أساسية بـ C# وإلمام بتدفقات الملفات.

## التثبيت

**.NET CLI**
```bash
dotnet add package GroupDocs.Redaction
```

**Package Manager**
```powershell
Install-Package GroupDocs.Redaction
```

**NuGet Package Manager UI**
ابحث عن **"GroupDocs.Redaction"** وقم بتثبيت أحدث نسخة.

## الحصول على الترخيص
- **نسخة تجريبية مجانية:** اختبار الـ API بترخيص مؤقت.
- **ترخيص مؤقت:** الحصول على الوصول الكامل للميزات لفترة محدودة.
- **شراء:** الحصول على ترخيص دائم للنشر في بيئات الإنتاج.

## دليل خطوة بخطوة

### الخطوة 1: تعريف فئة مسجل مخصص (log warnings c#)

إنشاء فئة تقوم بتنفيذ `ILogger`. ستقوم هذه الفئة بالتقاط الأخطاء والتحذيرات والرسائل المعلوماتية.

```csharp
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);
}
}
```

**شرح:** علم `HasErrors` يساعدك على اتخاذ قرار ما إذا كنت ستستمر في المعالجة. الطرق الثلاثة تتطابق مع مستويات السجل الثلاث التي ستحتاجها في معظم سيناريوهات الإخفاء.

### الخطوة 2: إعداد مسارات الملفات وفتح المستند المصدر

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

**لماذا هذا مهم:** استخدام طرق المساعدة يحافظ على نظافة الكود ويضمن وجود مجلد الإخراج قبل محاولة **حفظ المستند المُخفى**.

### الخطوة 3: تطبيق الإخفاءات أثناء استخدام المسجل المخصص

```csharp
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 });
}
}
}
}
```

**شرح:**
1. يتم إنشاء كائن `Redactor` باستخدام `RedactorSettings(logger)`، مما يربط `CustomLogger` الخاص بك.
2. بعد تطبيق الإخفاء، يتحقق الكود من `logger.HasErrors`. إذا لم تحدث أخطاء، يتم حفظ المستند—مما يوضح منطق **حفظ المستند المُخفى** دون التحويل إلى نقطية.

### المشكلات الشائعة وإصلاح الأخطاء
- **غياب مخرجات السجل:** تأكد من أن كل طريقة `Log*` تم تجاوزها بشكل صحيح.
- **استثناءات الوصول إلى الملفات:** تأكد من أن التطبيق يمتلك صلاحيات القراءة/الكتابة لكل من مسارات المصدر والإخراج.
- **المسجل غير موصول:** معامل `RedactorSettings(logger)` أساسي؛ إهماله يعطل التسجيل المخصص.

## التطبيقات العملية
1. **تقارير الامتثال:** تصدير سجلات السجل إلى CSV أو قاعدة بيانات لسجلات التدقيق.
2. **تتبع الأخطاء:** تحديد الملفات المشكلة بسرعة عبر فحص مخرجات `LogError`.
3. **أتمتة سير العمل:** تشغيل عمليات لاحقة (مثل إبلاغ مسؤول الامتثال) عند استدعاء `LogWarning`.

## اعتبارات الأداء
- **تخلص من التدفقات بسرعة** لتحرير الذاكرة، خاصةً عند معالجة دفعات كبيرة.
- **راقب وحدة المعالجة المركزية والذاكرة** أثناء الإخفاءات الضخمة؛ فكر في معالجة المستندات بشكل متوازي مع مزامنة دقيقة للمسجل.
- **ابقَ محدثًا:** الإصدارات الأحدث من GroupDocs.Redaction غالبًا ما تتضمن تحسينات في الأداء وإضافات لسجلات إضافية.

## الخلاصة

من خلال تنفيذ **مسجل مخصص c#**، تحصل على رؤية دقيقة لكل خطوة في خط أنابيب الإخفاء، مما يسهل الالتزام بمعايير الامتثال وتصحيح المشكلات. النهج المعروض هنا يعمل بسلاسة مع GroupDocs.Redaction لـ .NET ويمكن توسيعه للتكامل مع أي إطار تسجيل .NET تستخدمه بالفعل.

---

## الأسئلة المتكررة

**س: ما هو هدف التسجيل المخصص مع GroupDocs.Redaction؟**
ج: يساعد التسجيل المخصص في تتبع وإدارة الإخفاءات للامتثال، وتتبع الأخطاء، وتحسين سير العمل.

**س: كيف أتعامل مع الأخطاء باستخدام مسجل مخصص؟**
ج: نفّذ `LogError` في فئة `CustomLogger` الخاصة بك؛ علم `HasErrors` يتيح لك إيقاف المعالجة إذا لزم الأمر.

**س: هل يمكن دمج التسجيل المخصص مع أنظمة أخرى؟**
ج: نعم، يمكنك توجيه رسائل السجل إلى أنظمة CRM أو ERP أو أدوات المراقبة المركزية عن طريق توسيع طرق المسجل.

**س: ما هي بعض المشكلات الشائعة عند تنفيذ التسجيل المخصص؟**
ج: تنفيذ طرق غير صحيح، فقدان `RedactorSettings(logger)`، ومشكلات صلاحيات الملفات هي الأكثر شيوعًا.

**س: كيف يحسن التسجيل المخصص سير عمل إخفاء المستندات؟**
ج: السجلات التفصيلية توفر رؤية في الوقت الحقيقي، تبسط استكشاف الأخطاء، وتلبي متطلبات التدقيق.

## الموارد

- **الوثائق:** [GroupDocs.Redaction .NET Documentation](https://docs.groupdocs.com/redaction/net/)
- **مرجع API:** [GroupDocs.Redaction API Reference](https://reference.groupdocs.com/redaction/net)
- **تحميل:** [GroupDocs.Redaction for .NET](https://downloads.groupdocs.com/redaction/net)

---

**آخر تحديث:** 2026-03-28
**تم الاختبار مع:** GroupDocs.Redaction 23.11 لـ .NET
**المؤلف:** GroupDocs
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
---
date: '2026-03-28'
description: 了解如何在 GroupDocs.Redaction for .NET 中实现自定义 C# 日志记录器,以实现详细的自定义日志记录并更轻松地进行合规报告。
keywords:
- custom logger c#
- custom logging .net
- save redacted document
- log warnings c#
title: 在 GroupDocs.Redaction for .NET 中实现自定义日志记录器(C#)
type: docs
url: /zh/net/advanced-redaction/custom-logging-groupdocs-redaction-net/
weight: 1
---

# 在 GroupDocs.Redaction for .NET 中实现自定义日志记录器 C#

管理文档脱敏效率至关重要,尤其是在处理敏感信息时。在本指南中,您将学习 **如何在 GroupDocs.Redaction for .NET 中实现自定义日志记录器 C#**,从而全面控制日志记录、错误处理和审计跟踪。

## 快速答案
- **自定义日志记录器 C# 的作用是什么?** 它在脱敏过程中捕获错误、警告和信息性消息。
- **哪个库提供 ILogger 接口?** GroupDocs.Redaction for .NET。
- **我可以在不进行光栅化的情况下保存脱敏文档吗?** 可以——使用 `redactor.Save(..., new Options.RasterizationOptions { Enabled = false })`。
- **生产环境使用是否需要许可证?** 生产环境需要完整许可证;可使用试用版进行评估。
- **此方法是否兼容 .NET Core / .NET 6+?** 完全兼容——相同的 API 在 .NET Framework 和 .NET Core/5/6 上均可使用。

## 什么是自定义日志记录器 C#?
**自定义日志记录器 C#** 是一个实现 GroupDocs.Redaction 提供的 `ILogger` 接口的类。它允许您将日志消息路由到任意位置——控制台、文件、数据库或外部监控系统——并让您清晰地了解脱敏工作流。

## 为什么在 GroupDocs.Redaction 中使用自定义日志记录 .NET?
- **合规与审计:** 详细日志满足监管要求。
- **错误可见性:** `LogError` 和 `LogWarning` 为您提供即时的错误反馈。
- **集成灵活性:** 将日志转发到现有的 .NET 日志框架(Serilog、NLog 等)。

## 先决条件
- **已安装 GroupDocs.Redaction for .NET**(请参见下文的安装步骤)。
- 具备 .NET 开发环境(Visual Studio、VS Code 或 CLI)。
- 基本的 C# 知识并熟悉文件流。

## 安装

**.NET CLI**
```bash
dotnet add package GroupDocs.Redaction
```

**Package Manager**
```powershell
Install-Package GroupDocs.Redaction
```

**NuGet 包管理器 UI**
搜索 **"GroupDocs.Redaction"** 并安装最新版本。

## 许可证获取
- **免费试用:** 使用临时许可证测试 API。
- **临时许可证:** 在有限期间内获取全部功能。
- **购买:** 获得用于生产部署的永久许可证。

## 分步指南

### 步骤 1:定义自定义日志记录器类(记录警告 C#)

创建一个实现 `ILogger` 的类。该类将捕获错误、警告和信息性消息。

```csharp
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);
}
}
```

**说明:** `HasErrors` 标志帮助您决定是否继续处理。三个方法对应大多数脱敏场景中需要的三个日志级别。

### 步骤 2:准备文件路径并打开源文档

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

**为何重要:** 使用实用方法保持代码整洁,并确保在尝试 **保存脱敏文档** 之前输出文件夹已存在。

### 步骤 3:在使用自定义日志记录器的同时应用脱敏

```csharp
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 });
}
}
}
}
```

**说明:**
1. 使用 `RedactorSettings(logger)` 实例化 `Redactor`,将您的 `CustomLogger` 关联进去。
2. 在应用脱敏后,代码检查 `logger.HasErrors`。如果没有错误发生,则保存文档——演示了在不进行光栅化的情况下 **保存脱敏文档** 的逻辑。

## 常见陷阱与故障排除

- **日志输出缺失:** 确认每个 `Log*` 方法已正确重写。
- **文件访问异常:** 确保应用程序对源路径和输出路径都有读写权限。
- **日志记录器未连接:** `RedactorSettings(logger)` 参数至关重要,省略它会导致自定义日志失效。

## 实际应用

1. **合规报告:** 将日志条目导出为 CSV 或数据库,以用于审计追踪。
2. **错误追踪:** 通过扫描 `LogError` 输出快速定位有问题的文件。
3. **工作流自动化:** 当调用 `LogWarning` 时触发下游流程(例如通知合规官)。

## 性能考虑

- **及时释放流** 以释放内存,尤其在处理大批量时。
- **监控 CPU 与内存** 在批量脱敏期间;考虑在并行处理文档时谨慎同步日志记录器。
- **保持更新:** 新版本的 GroupDocs.Redaction 通常包含性能优化和额外的日志钩子。

## 结论

通过实现 **自定义日志记录器 C#**,您可以细致了解脱敏流水线的每一步,从而更容易满足合规标准并调试问题。此方法可无缝配合 GroupDocs.Redaction for .NET 使用,并可扩展以集成您已有的任何 .NET 日志框架。

---

## 常见问题

**问:使用 GroupDocs.Redaction 的自定义日志记录的目的是什么?**
**答:** 自定义日志记录有助于跟踪和管理脱敏,以满足合规、错误追踪和工作流优化的需求。

**问:如何使用自定义日志记录器处理错误?**
**答:** 在您的 `CustomLogger` 类中实现 `LogError`;`HasErrors` 标志可在需要时中止处理。

**问:自定义日志记录可以与其他系统集成吗?**
**答:** 可以,通过扩展日志记录器方法将日志消息转发到 CRM、ERP 或集中监控工具。

**问:实现自定义日志记录时常见的陷阱有哪些?**
**答:** 方法实现错误、缺少 `RedactorSettings(logger)`、文件权限问题是最常见的。

**问:自定义日志记录如何改进文档脱敏工作流?**
**答:** 详细日志提供实时可视性,简化故障排除,并满足审计要求。

## 资源

- **文档:** [GroupDocs.Redaction .NET Documentation](https://docs.groupdocs.com/redaction/net/)
- **API 参考:** [GroupDocs.Redaction API Reference](https://reference.groupdocs.com/redaction/net)
- **下载:** [GroupDocs.Redaction for .NET](https://downloads.groupdocs.com/redaction/net)

---

**最后更新:** 2026-03-28
**测试环境:** GroupDocs.Redaction 23.11 for .NET
**作者:** GroupDocs
Loading
Loading