How do I pipe the Java console output to a file?

后端 未结 5 1561
误落风尘
误落风尘 2020-12-08 21:17

I found a bug in an application that completely freezes the JVM. The produced stacktrace would provide valuable information for the developers and I would like to retrieve i

相关标签:
5条回答
  • 2020-12-08 21:55

    (If you can modify the code) you can set the System.out field to a different value:

    System.setOut(new PrintStream(new FileOutputStream(fileName)));
    

    If you are running a script (invoking the program via java) from Unix you could do:

    /path/to/script.sh >& path/to/output.log
    
    0 讨论(0)
  • 2020-12-08 21:59

    Actually one can activate tracing in the Java Control Panel. This will pipe anything that ends up in the Java console in a tracing file.

    The log files will end up in:

    • <user.home>/.java/deployment/log on Unix/Linux
    • <User Application Data Folder>\Sun\Java\Deployment\log on Windows
    • /~/Library/Caches/Java/log on OS X
    0 讨论(0)
  • 2020-12-08 22:00

    A frozen console probably means a deadlock (it could also mean repeated throwing of an exception). You can get a stack dump using jstack. jps may make finding the process easier.

    0 讨论(0)
  • 2020-12-08 22:13

    try this guide it works for me. it also guides you that how you can set "System.setOut(fileStream);", "System.setErr(fileStream);"

    0 讨论(0)
  • 2020-12-08 22:14

    In Mac 10.8.2 logs could be found at /Users/<userName>/Library/Application Support/Oracle/Java/Deployment/log/.

    Before you have to enable logging from Java Control Panel. Option "Enable logging" is at tab "Advanced". Java Control Panel could be started from "System preferences".

    0 讨论(0)
提交回复
热议问题