2012-06-08 5 views
3

Как отправить вывод из System.out в socket, например. PrintWriter?отправка System.out over socket

Мне нужно отправить все, что появляется на выходе консоли (как std, так и err), в PrintWriter, таким образом, сокет.

спасибо.

+0

Вы рассмотрели с помощью регистратора? – Kshitij

+0

Некоторые идеи: https://blogs.oracle.com/nickstephen/entry/java_redirecting_system_out_and – assylias

+0

Я знаю, что есть метод System.setOut(), но как передать PrintWriter вместо PritStream? –

ответ

4

Может быть, вы можете попробовать, как это:

OutputStream os = socket.getOutputStream(); // for example 
PrintStream ps = new PrintStream(os); 
System.setOut(ps); 
+0

Мне нужно было бы редактировать много кода, чтобы использовать PrintStream, в тот момент, когда я использую PrintWriter. Любые идеи о том, как System.setOut() для PrintWriter? Если это не выполнимо, мне придется переключиться на PrintStream. Спасибо –

+1

вы можете сделать так: PrintWriter out = new PrintWriter (System.out, true); – UVM

+0

OK. Но как я буду использовать его позже?!? Мой PrintWriter уже указывает на сокет: PrintWriter out = новый PrintWriter (новый OutputStreamWriter (m_clientSocket.getOutputStream())); и тогда я могу сделать, например. out.println(); Разве ваша распечатка не будет использоваться вместо консоли?!? Поправьте меня, если я ошибаюсь, я должен попробовать это. –

0

Ну, вы можете , но, пожалуйста, более конкретную информацию о ваших требований. Если вы хотите отправлять сообщения о регистрации, вам лучше использовать некоторую систему ведения журнала, например , где вы можете сразу перейти от ConsoleAppender к SocketAppender.

Вы также можете заменить System.out на System.setOut() и перенаправить вывод на какую-либо другую цель.

Если вы хотите перенаправить весь вывод некоторых приложений, вы можете попробовать некоторые Баш/nc обходной путь, а также:

$ java -jar your_app.jar | nc some_server 
+0

Переход на фреймворк для ведения журналов, по-видимому, является хорошей идеей и должен помочь мне решить другие проблемы. Спасибо. –

Смежные вопросы