我想爲android應用程序創建自定義日誌記錄程序。 由於應用程序會生成大量信息,因此日誌記錄應該在單獨的線程中完成。我不想使用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
感謝您的幫助.... – 2011-02-28 08:23:57