2013-11-01 4 views
0

Как отключить ведение журнала на моем выходе из консоли? Я не хочу, чтобы увидеть результат моей программы Java:Netbeans Отключить ведение картона (tyrus/grizzly)

Nov 01, 2013 12:01:29 PM org.glassfish.tyrus.server.ServerContainerFactory create 
INFO: Provider class loaded: org.glassfish.tyrus.container.grizzly.GrizzlyEngine 
Nov 01, 2013 12:01:29 PM org.glassfish.grizzly.http.server.NetworkListener start 
INFO: Started listener bound to [0.0.0.0:8029] 
Nov 01, 2013 12:01:29 PM org.glassfish.grizzly.http.server.HttpServer start 
INFO: [HttpServer] Started. 
Nov 01, 2013 12:01:29 PM org.glassfish.tyrus.server.Server start 
INFO: WebSocket Registered apps: URLs all start with ws://localhost:8029 
Nov 01, 2013 12:01:29 PM org.glassfish.tyrus.server.Server start 
INFO: WebSocket server started. 
+0

Вы используете log4j? Если это так, вы можете просто установить уровень ведения журнала на фатальный. – EdgeCase

+0

Если вы не хотите отображать что-либо в Консоли, просто создайте приложение без консоли. Это возможно для вашего случая использования? Если нет, сообщите нам больше :) –

+0

не работает, если я хочу выполнить его на ubuntu-сервере: p – numv

ответ

0

Я удивлен, что Java не эта функциональность запеченная в (или что я не мог найти что-то одно и то же в настоящее время) ...

Назначить System.out и System.err потоку, который ничего не пишет (для входа в систему). В .NET есть Stream.Null, который является потоком без резервного хранилища, то есть нуль поток или void поток.

В Java, такой Stream легко встраивается путем расширения java.io.OutputStream:

class VoidStream extends OutputStream { 
    @Override 
    public void write(int b) throws IOException { 
     // 
     // -------------- 
     // | void space | 
     // -------------- 
     // 
    }  
} 

Теперь установите VoidStream к System.out и System.err использованием System.setOut() и System.Err() в результате пустой консоли,

PrintStream ps = new PrintStream(new VoidStream()); 
System.setOut(ps); 
System.setErr(ps); 

Теоретически одно предостережение: System.console(), поскольку его выходной поток не может быть установлен, но функционирует как printf() и format(). К счастью, System.console() доступен только в том случае, если программа запускается в терминале (otherwise it returns null) и кто все еще работает с терминалом? ;-)

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