Как отправить вывод из System.out в socket, например. PrintWriter?отправка System.out over socket
Мне нужно отправить все, что появляется на выходе консоли (как std, так и err), в PrintWriter, таким образом, сокет.
спасибо.
Как отправить вывод из System.out в socket, например. PrintWriter?отправка System.out over socket
Мне нужно отправить все, что появляется на выходе консоли (как std, так и err), в PrintWriter, таким образом, сокет.
спасибо.
Может быть, вы можете попробовать, как это:
OutputStream os = socket.getOutputStream(); // for example
PrintStream ps = new PrintStream(os);
System.setOut(ps);
Мне нужно было бы редактировать много кода, чтобы использовать PrintStream, в тот момент, когда я использую PrintWriter. Любые идеи о том, как System.setOut() для PrintWriter? Если это не выполнимо, мне придется переключиться на PrintStream. Спасибо –
вы можете сделать так: PrintWriter out = new PrintWriter (System.out, true); – UVM
OK. Но как я буду использовать его позже?!? Мой PrintWriter уже указывает на сокет: PrintWriter out = новый PrintWriter (новый OutputStreamWriter (m_clientSocket.getOutputStream())); и тогда я могу сделать, например. out.println(); Разве ваша распечатка не будет использоваться вместо консоли?!? Поправьте меня, если я ошибаюсь, я должен попробовать это. –
Ну, вы можете , но, пожалуйста, более конкретную информацию о ваших требований. Если вы хотите отправлять сообщения о регистрации, вам лучше использовать некоторую систему ведения журнала, например logback, где вы можете сразу перейти от ConsoleAppender
к SocketAppender
.
Вы также можете заменить System.out
на System.setOut()
и перенаправить вывод на какую-либо другую цель.
Если вы хотите перенаправить весь вывод некоторых приложений, вы можете попробовать некоторые Баш/nc
обходной путь, а также:
$ java -jar your_app.jar | nc some_server
Переход на фреймворк для ведения журналов, по-видимому, является хорошей идеей и должен помочь мне решить другие проблемы. Спасибо. –
Вы рассмотрели с помощью регистратора? – Kshitij
Некоторые идеи: https://blogs.oracle.com/nickstephen/entry/java_redirecting_system_out_and – assylias
Я знаю, что есть метод System.setOut(), но как передать PrintWriter вместо PritStream? –