シルバーライト:Log4Net から分離ストレージへ
-
24-09-2019 - |
質問
まず、私が知っているのは、 下駄, 、そして私はこの作品を実装したくありません。理由?厳密なログ記録の「フレームワーク」を維持することはできません。
そこで私の質問に対して:
実装は可能ですか ログフォーネット Silverlight アプリケーションで?私が達成したいのは、 隔離されたストレージ. 。利用可能なストレージが 1 MB しかないことはわかっていますが、この制限は増やすことができます (ユーザーはこれを受け入れる必要があることもわかっています)。ちなみに、代替案は提供しないでください。誰かが実装したかどうかだけを知りたいのですが、 log4net から分離ストレージへ.
解決
私はそれが可能であることを想像することはできません。あなたはlog4netのソースをダウンロードして、Silverlightのランタイムに対してそれをコンパイルしようとしなければなりません。私はコードの一部を適応し、それがSilverlightで構築することが可能かもしれ仮定が、多くのハードワークのようなものな音。おそらく、もっと自分自身のソリューションを転がり、またはCLOG(おっと)を使用してオフにしています。
他のヒント
ここで私がやったのです..
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 統合パック そして対応する デモ.
所属していません StackOverflow