2013-05-21 144 views
2

我很新的Java和我的問題可能很noobish,但我無法弄清楚。記錄器輸出到字符串

我有一個Logger logger = Logger.getLogger(MyClass.class.getName());

而且我想那記錄儀作爲一個字符串輸出。例如,當我做

logger.info("Some message"); 
logger.warning(" Some warning"); 

我希望得到一個String someString =「一些消息SomeWarning」

我在尋找類似

ByteArrayOutputStream loggerContent = new ByteArrayOutputStream(); 
System.setOut(new PrintStream(loggerContent)); 
TextView tv = (TextView)findViewById(R.id.txt_1); 
tv.setText(loggerContent.toString()); 

的東西,但是我不能實現這一目標。這是可能的和如何?

編輯:我想要在另一個活動中使用的字符串在屏幕上顯示它。

+0

我不太明白。你想在你登錄的應用程序中擁有那個String嗎?或者你想獲得「app#2」中的「app#1」的日誌輸出嗎? – Fildor

+0

您可以更改log4j以將日誌打印到文件中。 – Makky

+0

我想讓該字符串在另一個活動中用於在屏幕上顯示它。 – nihilvex

回答

2
ByteArrayOutputStream loggerContent = new ByteArrayOutputStream(); 
PrintStream prStr = new PrintStream(loggerContent); 
StreamHandler streamHandler = new StreamHandler(prStr, new SimpleFormatter()); 

我試過之前,我張貼在這裏,無法得到結果。它實際上有效,但在嘗試loggerContent.toString()之前,我不得不使用StreamHandler。 謝謝你們的回覆。 :)