首先,我知道Clog,我不想实现这部分。原因?我们无法维护严格的日志记录“框架”。
所以对于我的问题:
是否可以在 Silverlight 应用程序中实现log4net ?我想要实现的是记录到独立存储。我知道,只有 1 MB 的可用存储空间,但可以增加此限制(用户必须接受这一点,我也知道)。顺便说一句,请不要给我提供替代品。我只想知道是否有人实施了log4net 来隔离存储。
这是我所做的..
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
}
我无法想象这是可能的。您必须下载 log4net 源代码并尝试针对 silverlight 运行时进行编译。我想可能可以调整部分代码并使其构建在 Silverlight 中,但这听起来很辛苦。您最好推出自己的解决方案,或者使用 CLog(哎呀)。
Microsoft Enterprise Library 5.0的日志记录应用程序块现在可用于 Silverlight。查看Silverlight 集成包和相应的演示。