アンドロイドアプリケーションのカスタムロガーを作成したいと思います。 アプリケーションが多くの情報を生成するため、ログは別のスレッドで実行する必要があります。私は特定の形式でログを書き込む必要があるので、私はAndroidのログを使いたくない。複数のスレッドが同時にログファイルへの書き込みされますので、私はここで私はAndroidアプリケーションのカスタムロギング
Queue<LogEntry> logQueue = new LinkedBlockingQueue<LogEntry>();
LogWritterThread logWritterThread = new LogWritterThread();
// to queue the log messages
public void QueueLogEntry(String message)
{
LogEntry le = new LogEntry(message);
{
logQueue.add(le);
logQueue.notifyAll();
}
logWritterThread.start();
}
class LogWritterThread extends Thread
{
public void run()
{
try
{
while(true)
{
//thread waits until there are any logs to write in the queue
if(logQueue.peek() == null)
synchronized(logQueue){
logQueue.wait();
}
if(logQueue.peek() != null)
{
LogEntry logEntry;
synchronized(logQueue){
logEntry = logQueue.poll();
}
// write the message to file
}
if(Thread.interrupted())
break;
}
}
catch (InterruptedException e)
{
}
}
}
を持っているコードがあるログメッセージ
を維持するためにキューを使用しているこれで間違っている任意のものがありますコード?彼らは、スレッドセーフですすべてがキューとメッセージスレッドを実装しているので、私はハンドラのが大好き -
おかげで、 Anuj
おかげで、それらの両方をマークすることはできません.... –