Sto usando una libreria che stampa un mucchio di informazioni superflue sulla console quando faccio riferimento a esso. C'è un modo per mettere a tacere l'output della libreria?Come interrompere la stampa di una libreria Java sulla console?
risposta
Se si utilizza un framework di registrazione (log4j, commons-logging, ecc.), È possibile modificare/creare un file delle proprietà per indicare una soglia di registrazione elevata. in log4j questo sarà simile:
log4j.logger.org.library=error
Se la libreria sta usando System.out
, che non è una buona biblioteca, in primo luogo. È possibile modificare PrintStream
chiamando System.setOut(yourDummyPrintStream)
(e System.setErr(..)
). Il tuo flusso di stampa fittizio non farebbe altro che inghiottire i dati e non stamparli ovunque.
Non penso che nessuna libreria decente/sana usi System.out per registrare i messaggi. Quindi posso tranquillamente supporre che usi una specie di framework di registrazione. Configura che il particolare pacchetto sia a un livello di registrazione più alto come "ERRORE" o "FATALE" in modo che tu non possa vedere quei messaggi.
Probabilmente la libreria utilizza un logger, log4j o slf4j. È possibile che sia possibile creare un file di configurazione per quel registratore e quindi impostare il livello di registro su WARN o superiore. Ciò interromperà la stampa delle informazioni.
Avete provato a impostare il canale OUT e ERR con System.setOut()
e System.setErr()
?
ho votato fino risposta di Jan e ha voluto aggiungere:
Utilizzando setOut significa che non è possibile stampare a System.out nel vostro programma di più.
Si può fare
PrintStream oldOut=System.out
prima di salvarlo, quindi chiamare setOut per cambiarlo - poi basta stampare oldOut.
Sono andato così lontano da usare questo come un mini-logger - prendere il System.out, sostituirlo con il mio stream e avere il mio stream prendere una traccia dello stack e capire il metodo di chiamata in modo che possibile aggiungere il nome del metodo prima di inoltrare al System.out originale.
Terribilmente lento, ma buono per il debug. Aveva un'impostazione in modo da poter tornare a stampare semplicemente la stringa, nascondere tutti gli output o filtrare il metodo da cui proveniva il messaggio (che era il mio utilizzo principale, nascondendo tutti gli altri rifiuti in modo da poter vedere il mio output).
Considerare l'utilizzo di AspectJ, che può sostituire tutte le occorrenze di System.out.println() con una dichiarazione di propria scelta, un'istruzione di registro propably. Questo funziona anche con i file jar di terze parti (cerca la tessitura a tempo di caricamento).
Se il lib utilizza stampe userei asm per sostituire tutte sys.out.printXXx con una chiamata a un'altra classe con simili signatutes metodo che inghiottono ecc
- 1. NSLog non stampa sulla console
- 2. putStrLn non stampa sulla console
- 3. Impossibile interrompere la stampa
- 4. Vai alla data di stampa sulla console
- 5. Stampa indice funzione pacchetto R sulla console
- 6. System.out.println non stampa sulla console netbeans
- 7. puts non stampa roba sulla console
- 8. ANTLR 4: Evita errori nella stampa sulla console
- 9. cscript - stampa l'output sulla stessa riga sulla console?
- 10. Interrompere la stampa dopo n numero di linee
- 11. come stampare la richiesta http sulla console
- 12. Come ottenere la stampa di Rails.logger sulla console/stdout quando si esegue rspec?
- 13. Libreria Java per scrivere una tabella sulla riga di comando
- 14. Stampa in Java sulla stampante per etichette
- 15. xTend: come interrompere una variabile dalla stampa in uscita?
- 16. Come interrompere una lettura su Java Socket?
- 17. Come interrompere correttamente la discussione in Java?
- 18. API java scripting - come interrompere la valutazione
- 19. Conversione di jbyteArray in un array di caratteri e quindi stampa sulla console
- 20. Libreria Java per la creazione di oggetti 3d per la stampa 3d
- 21. Stampa console schema
- 22. Come stampare tabelle ben formattate sulla console?
- 23. Android: Come posso stampare una variabile sulla console di eclipse
- 24. Come posso scrivere sulla console dal codice vba di Excel?
- 25. Come utilizzare la funzionalità di stampa pronta nella libreria PHPExcel
- 26. Eclipse scrive sulla console
- 27. Stampa su console senza flooding in C++
- 28. Quale bella libreria di stampa?
- 29. Stampa di un'immagine da un'applicazione console
- 30. Come interrompere un thread Java?
quale libreria è? – Romain