Tamkeen.Monitor.Core
1.0.1
dotnet add package Tamkeen.Monitor.Core --version 1.0.1
NuGet\Install-Package Tamkeen.Monitor.Core -Version 1.0.1
<PackageReference Include="Tamkeen.Monitor.Core" Version="1.0.1" />
<PackageVersion Include="Tamkeen.Monitor.Core" Version="1.0.1" />
<PackageReference Include="Tamkeen.Monitor.Core" />
paket add Tamkeen.Monitor.Core --version 1.0.1
#r "nuget: Tamkeen.Monitor.Core, 1.0.1"
#:package Tamkeen.Monitor.Core@1.0.1
#addin nuget:?package=Tamkeen.Monitor.Core&version=1.0.1
#tool nuget:?package=Tamkeen.Monitor.Core&version=1.0.1
مكتبة Tamkeen.Monitor.Core
حزمة Serilog عربية جاهزة للإنتاج مع دعم Seq وElasticsearch وملفات النظام وقواعد بيانات MSSQL.
✨ نبذة مختصرة
تساعدك المكتبة على توحيد تسجيل الأحداث (Logging) في خدمات .NET من خلال واجهة خيارات مبسطة (LibraryOptions) وتكامل جاهز مع أشهر الوسائط:
- سجلات الملفات الدورية (Rolling Files)
- خادم Seq للمتابعة اللحظية
- Elasticsearch لمراقبة السجلات وفهرستها
- قاعدة بيانات MSSQL كخيار احتياطي
متى أستخدمها؟
- عند بناء خدمات مصغّرة تحتاج سجلات موحدة مع بيانات سياقية غنية
- عند التحول من سجلات نصية متفرقة إلى منصة مركزية مثل Seq أو Kibana
- في بيئات DevOps التي تتطلب مراقبة الأداء والأخطاء بدقة
📦 التثبيت
dotnet add package Tamkeen.Monitor.Core --version 1.0.1
🚀 مثال سريع
using Microsoft.Extensions.DependencyInjection;
using Tamkeen.Monitor.Core.Configuration;
using Tamkeen.Monitor.Core.TmakeenLogsWithElastick;
var services = new ServiceCollection();
services.Configure<LibraryOptions>(options =>
{
options.ProjectName = "CheckoutService";
options.LayerName = "API";
options.UseSerilog = true;
options.SerilogFilePath = "/var/log/checkout/api.log";
options.UseElasticsearch = true;
options.ElasticsearchUrl = "https://elasticsearch.company.local";
options.ElasticSearchApiKey = Environment.GetEnvironmentVariable("ES_API_KEY");
options.UseConsole = true;
});
services.AddSingleton<TamkeenLogRegister>();
var provider = services.BuildServiceProvider();
var logger = provider.GetRequiredService<TamkeenLogRegister>();
logger.LogInfo(
functionName: "CreateOrder",
logRef: Guid.NewGuid().ToString(),
projectName: "CheckoutService",
layerName: "API",
logInfo: new { OrderId = 1024, Amount = 120.5m },
logType: 1);
⚙️ خيارات التهيئة (LibraryOptions)
| الخاصية | الوصف | القيمة الافتراضية |
|---|---|---|
ProjectName |
اسم المشروع الظاهر في السجلات. | اسم التجميع التنفيذي |
LayerName |
اسم الطبقة المنطقية (API، Service…). | استدلال تلقائي |
MinimumLogLevel |
أقل مستوى يتم تسجيله. | Debug |
SerilogSeqUrl |
عنوان خادم Seq. | فارغ |
SerilogDbConnectionString |
سلسلة الاتصال لقواعد بيانات MSSQL. | فارغ |
SerilogTableName |
اسم جدول MSSQL للسجلات. | فارغ |
SerilogFilePath |
مسار ملف السجلات المحلي. | فارغ |
UseSerilog |
تفعيل السجلات المحلية/Seq/MSSQL. | false |
UseElasticsearch |
تفعيل التكامل مع Elasticsearch. | false |
ElasticsearchUrl |
عنوان خادم Elasticsearch. | فارغ |
ElasticsearchIndexName |
اسم الفهرس. | اشتقاق تلقائي من اسم المشروع |
ElasticSearchApiKey |
مفتاح المصادقة API Key. | فارغ |
ElasticsearchUsername/Password |
بيانات المصادقة الأساسية. | فارغ |
UseConsole |
طباعة السجلات على وحدة التحكم. | false |
UseHttps |
فرض التحقق من الشهادة عند الاتصال بـ HTTPS. | false |
ElasticSearchBufferBaseFilename |
مسار التخزين المؤقت عند انقطاع Elasticsearch. | ./logs/elastic-buffer |
💡 ملاحظة: وفر الإعدادات عبر متغيرات بيئية أو ملفات
appsettings.jsonوتجنب كتابة القيم الحساسة داخل الكود.
🧪 الاختبارات
للتشغيل محلياً:
dotnet test -c Release
في هذا المستودع لا يتم تضمين أي مفاتيح أو عناوين بيئات حقيقية؛ جميع الأمثلة توضيحية.
📜 سجل التغييرات المختصر
- 1.0.1: تحسين بيانات NuGet، إضافة LibraryOptions، وإزالة العينات التي تحتوي على بيانات حساسة.
- 1.0.0: الإصدار الأولي داخل المؤسسة.
📐 سياسة الإصدارات
نتبع Semantic Versioning (صيغة MAJOR.MINOR.PATCH). التعديلات غير المتوافقة ستحمل زيادة في MAJOR مع توثيق واضح.
🆘 الدعم والإبلاغ عن المشاكل
- افتح تذكرة عبر GitHub Issues
- أو تواصل مع فريق منصة تمكين عبر البريد: support@tamkeen.com.ye
📄 الترخيص
المكتبة متاحة تحت رخصة MIT. يرجى مراجعة ملف THIRD_PARTY_NOTICES.md لمعرفة رخص التبعيات.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net7.0
- Elastic.Apm.SerilogEnricher (>= 8.12.3)
- Microsoft.IdentityModel.JsonWebTokens (>= 7.7.1)
- Newtonsoft.Json (>= 13.0.3)
- Serilog (>= 4.2.0)
- Serilog.Enrichers.Environment (>= 3.0.1)
- Serilog.Exceptions (>= 8.4.0)
- Serilog.Sinks.Console (>= 6.0.0)
- Serilog.Sinks.Elasticsearch (>= 10.0.0)
- Serilog.Sinks.File (>= 6.0.0)
- Serilog.Sinks.InMemory (>= 0.11.0)
- Serilog.Sinks.MSSqlServer (>= 8.1.0)
- Serilog.Sinks.Seq (>= 9.0.0)
- System.Text.Json (>= 9.0.9)
-
net8.0
- Elastic.Apm.SerilogEnricher (>= 8.12.3)
- Microsoft.IdentityModel.JsonWebTokens (>= 7.7.1)
- Newtonsoft.Json (>= 13.0.3)
- Serilog (>= 4.2.0)
- Serilog.Enrichers.Environment (>= 3.0.1)
- Serilog.Exceptions (>= 8.4.0)
- Serilog.Sinks.Console (>= 6.0.0)
- Serilog.Sinks.Elasticsearch (>= 10.0.0)
- Serilog.Sinks.File (>= 6.0.0)
- Serilog.Sinks.InMemory (>= 0.11.0)
- Serilog.Sinks.MSSqlServer (>= 8.1.0)
- Serilog.Sinks.Seq (>= 9.0.0)
- System.Text.Json (>= 9.0.9)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.1 | 183 | 9/20/2025 |