2013-05-21 74 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。 谢谢你们的回复。 :)