2013-05-21 2 views
2

Я довольно новичок в java, и мой вопрос, вероятно, очень нубийский, но я не могу понять это.Выход регистратора в строку

Я с Logger logger = Logger.getLogger(MyClass.class.getName());

И я хочу, чтобы получить выход этого регистратора в виде строки. Например, когда я

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

Я хочу, чтобы получить строку SomeString = «Некоторые сообщения SomeWarning»

Я ищу что-то похожее на

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

Но я не в состоянии Добейся этого. Это возможно и как?

EDIT: Я хочу, чтобы эта строка использовалась в другом действии, чтобы показать ее на экране.

+0

Я не совсем понимаю. Вы хотите иметь эту строку внутри приложения, из которого вы регистрируетесь? Или вы хотите получить вывод журнала, назови его «приложение №1» в «приложении №2»? – Fildor

+0

Вы также можете изменить log4j для печати журнала. – Makky

+0

Я хочу, чтобы эта строка использовалась в другой активности, чтобы показать ее на экране. – nihilvex

ответ

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

Я пробовал это, прежде чем я разместил здесь и не смог получить результат. Это действительно работает, но мне пришлось .flush() StreamHandler перед попыткой loggerContent.toString(). Спасибо за ответы ребята. :)