سؤال

أولا ، أنا أعرف عن انسداد, ، وأنا لا أريد تنفيذ هذه القطعة. السبب؟ لا يمكننا الحفاظ على قطع الأشجار المفرطة.

لذلك لسؤالي:

هل من الممكن التنفيذ log4net في تطبيق Silverlight؟ ما أريد تحقيقه هو التسجيل إلى تخزين معزول. أعلم أنه لا يوجد سوى 1 ميغابايت من التخزين المتاحة ، ولكن يمكن زيادة هذا الحد (يجب على المستخدم قبول هذا ، وأنا أعلم أيضًا). بالمناسبة ، من فضلك لا تزودني بدائل. أريد فقط أن أعرف ما إذا كان شخص ما قد نفذ أ log4net للتخزين المعزول.

هل كانت مفيدة؟

المحلول

لا أستطيع أن أتخيل أنه ممكن. سيكون عليك تنزيل مصدر Log4Net ومحاولة تجميعه مقابل وقت تشغيل Silverlight. أفترض أنه قد يكون من الممكن تكييف أجزاء من الكود وجعلها تبني في Silverlight ، ولكن هذا يبدو وكأنه الكثير من العمل الشاق. من المحتمل أن تكون أفضل حالًا في تدحرج الحل الخاص بك ، أو استخدام السد (WHOOPS).

نصائح أخرى

هذا ما فعلته ..

using System.IO.IsolatedStorage;
using System.IO;

namespace Solution.Silverlight.Classes
{
    public static class Logging
    {
        public static void Log(string message, LOGLEVEL logLevel)
        {
            try
            {
                using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication())
                {
                    using (Stream stream = new IsolatedStorageFileStream("Solution.Silverlight.log", FileMode.Append, FileAccess.Write, store))
                    {
                        StreamWriter writer = new StreamWriter(stream);
                        switch (logLevel)
                        {
                            case LOGLEVEL.INFO:
                                writer.Write(String.Format("{0:u} [INFO] {1}{2}", DateTime.Now, message,Environment.NewLine));
                                break;
                            case LOGLEVEL.WARNING:
                                writer.Write(String.Format("{0:u} [WARNING] {1}{2}", DateTime.Now, message, Environment.NewLine));
                                break;
                            case LOGLEVEL.ERROR:
                                writer.Write(String.Format("{0:u} [ERROR] {1}{2}", DateTime.Now, message, Environment.NewLine));
                                break;
                            case LOGLEVEL.FATAL:
                                writer.Write(String.Format("{0:u} [FATAL] {1}{2}", DateTime.Now, message, Environment.NewLine));
                                break;
                            default:
                                break;
                        }
                        writer.Close();
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
    }
}


public enum LOGLEVEL
{
    INFO,
    WARNING,
    ERROR,
    FATAL
}

ال كتلة تطبيق التسجيل من Microsoft Enterprise Library 5.0 متاح الآن لـ Silverlight. ألق نظرة على حزمة تكامل Silverlight والمقابل العرض التوضيحي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top