"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > تسجيل Goframe من الدخول إلى الإتقان: تقدم صفر باسيس

تسجيل Goframe من الدخول إلى الإتقان: تقدم صفر باسيس

نشر في 2025-04-13
تصفح:755

Mastering GoFrame Logging: From Zero to Hero

دليل نظام التسجيل الفعال GoFrame: من المبتدئين إلى الإتقان

]

ملخص

يوفر GoFrame نظام تسجيل قوي وسهل التكوين ومرن للغاية. يغطي هذا الدليل كل شيء بدءًا من التسجيل الأساسي إلى الميزات المتقدمة مثل دوران السجل والتنسيق المخصص وشد السجل ، وهو مثالي لمطوري GO الذين يرغبون في تحقيق تسجيل قوي في تطبيقاتهم!

لماذا الانتباه إلى نظام سجل GoFrame؟

هل سبق لك أن ناضلت مع سجلات فوضوية أو قضيت ساعات تصحيح الأخطاء لأنه لا يمكنك العثور على إدخال السجل الصحيح؟ سوف تساعدك وحدة سجل Goframe! سواء كنت تقوم ببناء خدمات صغيرة أو تطبيقات كبيرة ، فإن التسجيل المناسب أمر بالغ الأهمية. دعونا نغوص في كيفية قيام GoFrame بجعل قطع الأشجار قوية وسهلة.

يغطي هذا الدليل:

  • إعدادات السجل الأساسية والاستخدام
  • مستوى السجل وأهميته
  • تسجيل دوران (لأنه لا أحد يحب ملفات سجل ضخمة!)
  • تنسيق مخصص لتحسين قابلية القراءة
  • تقنيات متقدمة مثل Sharding log
  • أمثلة عملية يمكنك استخدامها على الفور

الإعدادات الأساسية

]

لنبدأ بالأساسيات. توفر وحدة سجل GoFrame (GLOG) العديد من الوظائف سهلة الاستخدام التي ستعجبك:

import "github.com/gogf/gf/v2/os/glog"

func main() {
    // 简单日志记录
    glog.Debug("调试信息")  // 用于开发人员
    glog.Info("信息")    // 一般信息
    glog.Warn("警告!")        // 注意!
    glog.Error("错误!")         // 出现问题
    glog.Fatal("严重错误!")     // 出现严重问题
}

؟ النصائح المهنية: ابدأ من مستوى المعلومات في بيئة الإنتاج واستخدم مستوى التصحيح في بيئة التطوير. سوف تشكرني في المستقبل!

إدارة ملفات السجل الذكية

]

واحدة من ميزاتي المفضلة هي دوران السجل التلقائي. لا حاجة لتنظيف الملفات يدويا! هنا طريقة الإعداد:

import "github.com/gogf/gf/v2/os/glog"

func main() {
    l := glog.New()
    l.SetPath("./logs")                    // 日志存储位置
    l.SetFile("app-{Ymd}.log")            // 每日轮转!

    // 您的日志现在将按日期组织
    l.Info("这将写入今天的日志文件")
}

{ymd}

app-20241124.log
  • app-20241125.log
  • إلخ...
مستوى السجل: حدد مستوى التفاصيل الخاص بك

تعامل مع مستوى السجل باعتباره مقبض الصوت للسجل. فيما يلي طرق لاستخدامها بفعالية:

استيراد "github.com/gogf/gf/v2/os/glog" Func Main () { CTX: = gctx.new () L: = glog.new () // إظهار التحذيرات فقط وما فوق المستويات L.SetLevel (glog.level_warn) // لن يتم عرض هذه L.Debug (CTX ، "معلومات التصحيح ...") L.info (CTX ، "للرجوع فقط ...") // سوف يتم عرضها L.Warning (CTX ، "ملاحظة!") L.Error (CTX ، "هيوستن ، لدينا مشكلة!") }
import "github.com/gogf/gf/v2/os/glog"

func main() {
    ctx := gctx.New()
    l := glog.New()

    // 只显示警告及以上级别
    l.SetLevel(glog.LEVEL_WARN)

    // 这些不会显示
    l.Debug(ctx, "调试信息...")
    l.Info(ctx, "仅供参考...")

    // 这些将显示
    l.Warning(ctx, "注意!")
    l.Error(ctx, "休斯顿,我们有问题!")
}
قم بتجميل السجل الخاص بك

] لا أحد يحب سجلات قبيحة! إليك كيفية تسهيل القراءة:

استيراد "github.com/gogf/gf/v2/os/glog" Func Main () { CTX: = gctx.new () L: = glog.new () // إضافة معلومات الطابع الزمني والملف L.SetFlags (glog.f_time_std | glog.f_file_short) // إضافة حقول مخصصة L.infof (CTX ، "user ٪ d تسجيل الدخول من ٪ s" ، 12345 ، "192.168.1.1") }
import "github.com/gogf/gf/v2/os/glog"

func main() {
    ctx := gctx.New()
    l := glog.New()

    // 添加时间戳和文件信息
    l.SetFlags(glog.F_TIME_STD | glog.F_FILE_SHORT)

    // 添加自定义字段
    l.Infof(ctx, "用户 %d 从 %s 登录", 12345, "192.168.1.1")
}

2024-11-24 14:30:00 [info] main.go: 12: user 12345 قم بتسجيل الدخول من 192.168.1.1
2024-11-24 14:30:00 [INFO] main.go:12: 用户 12345 从 192.168.1.1 登录
متقدم: سجل sharding

الدخول في مشاريع واسعة النطاق؟ قد ترغب في تقسيم السجلات بناءً على نوع السجل. هذه طريقة ذكية:

استيراد "github.com/gogf/gf/v2/os/glog" Func Main () { CTX: = gctx.new () // إنشاء مسجل منفصل الوصول: = glog.new () الأخطاء: = glog.new () // تكوينها بطرق مختلفة Access.setFile ("Access- {ymd} .log") errors.setfile ("الأخطاء-{ymd} .log") // استخدمها عند الاقتضاء Access.info (CTX ، "شاهد المستخدم الصفحة الرئيسية") errors.error (ctx ، "لا يمكن الاتصال بقاعدة البيانات") }
import "github.com/gogf/gf/v2/os/glog"

func main() {
    ctx := gctx.New()
    l := glog.New()

    // 只显示警告及以上级别
    l.SetLevel(glog.LEVEL_WARN)

    // 这些不会显示
    l.Debug(ctx, "调试信息...")
    l.Info(ctx, "仅供参考...")

    // 这些将显示
    l.Warning(ctx, "注意!")
    l.Error(ctx, "休斯顿,我们有问题!")
}
تنسيق مخصص لتلبية الاحتياجات الخاصة

] هل تحتاج إلى تنسيق السجلات بطريقة محددة؟ ربما تكون أداة تجميع السجل؟ هذه هي الطريقة:

يستورد ( "FMT" "github.com/gogf/gf/v2/os/glog" "وقت" ) اكتب CustomWriter struct {} func (w *customWriter) اكتب (p [] byte) (n int ، err error) { // إضافة تنسيق JSON log: = fmt.sprintf (`{" time ":" ٪ s "،" message ":" ٪ s "}` ، Time.Now (). Format (time.rfc3339) ، سلسلة (ع)) fmt.print (سجل) إرجاع لين (سجل) ، لا شيء } Func Main () { L: = glog.new () L.SetWriter (& CustomWriter {}) L.Print ("حدث شيء!") }
import "github.com/gogf/gf/v2/os/glog"

func main() {
    ctx := gctx.New()
    l := glog.New()

    // 只显示警告及以上级别
    l.SetLevel(glog.LEVEL_WARN)

    // 这些不会显示
    l.Debug(ctx, "调试信息...")
    l.Info(ctx, "仅供参考...")

    // 这些将显示
    l.Warning(ctx, "注意!")
    l.Error(ctx, "休斯顿,我们有问题!")
}
موجه النجاح السريع

]

    ابدأ صغيرًا
  1. : ابدأ بالتسجيل الأساسي وأضف التعقيد حسب الحاجة
  2. استخدم مستويات السجل بحكمة
  3. : يتم استخدام التصحيح للتطوير ، يتم استخدام المعلومات للعمليات العامة ، وتستخدم الأخطاء للمشاكل
  4. قم بتدوير سجلاتك
  5. : قم بإعداد دوران السجل من اليوم الأول - سوف يشكرك مساحة القرص الخاصة بك
  6. إضافة سياق
  7. : تضمين معلومات المستخدم ذات الصلة ، مثل معرف المستخدم ، معرف الطلب ، إلخ.
  8. مراقبة حجم السجل
  9. : استخدم setFile مع وضع التاريخ لإدارة نمو السجل
تلخيص

قد لا يكون تسجيل الدخول هو الجزء الأكثر إثارة من التطوير ، لكنه بالتأكيد أحد أهم الأجزاء. باستخدام وحدة تسجيل GoFrame ، يمكنك استخدام جميع الأدوات اللازمة لتنفيذ نظام تسجيل قوي ، مما يجعل حياتك أسهل عندما يحدث خطأ ما (ويحدث دائمًا!).

الخطوة التالية؟

حاول تنفيذ هذه الأمثلة في مشروعك
  • جرب تنسيقات سجل مختلفة
  • تعيين دوران السجل وفقًا لاحتياجاتك
  • فكر في إضافة سجلات منظمة لتحليل أفضل
  • أتمنى لك تسجيلًا سعيدًا! ؟


تغطية الصورة من xyz

مشكلات المناقشة

كيف تتعامل مع التسجيل في مشروع GO؟ ما هي التحديات التي تواجهها وكيف تساعد وحدة تسجيل GoFrame في حل هذه التحديات؟ واسمحوا لي أن أعرف في التعليقات! ؟

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3