System.out vs System.err questions
Hello,
System.out and System.err both seem to direct regular and error output to the stdout. I have the following questions:
1. I used System.setOut() to direct regular output to "Output.txt" and System.setErr() to direct errors to "Errors.txt". I purposely made the program to throw some exceptions, wanting to redirect them to "Errors.txt". It did not work. My question is "What kind of errors setErr() would direct to an error file?"
2. Without using setErr(), errors go to stdout. My question is "Does Java hava a configuration file I can configue to direct regular output to stdout, but errors to a user-defined file such as errors.log?"
Thanks!
I see the stack trace in file err.txt:
import java.io.*;
public class Example {
public static void main(String[] args) throws FileNotFoundException {
System.setOut(new PrintStream(new FileOutputStream("out.txt"), true));
System.setErr(new PrintStream(new FileOutputStream("err.txt"), true));
System.out.println("<stdout>");
System.err.println("<stderr>");
throw new RuntimeException("here we go");
}
Similar Messages
-
System.out and System.err
Hi all,
This is a stupid newbie question, but I could not find the answer on the Web
site, so here goes: Where do System.out and System.err get written to? I'm
trying to deploy some plain-vanilla stateless session beans that do a bunch
of println() calls, but I can't see the output anywhere! The WebLogic
Console shows no messages, /myserver/weblogic.log has nothing interesting,
and there are no .log files anywhere that I can see. I even searched /tmp
and found nothing of interest. What am I missing? Do I have to explicitly
open a file for System.out and/or System.err? That doesn't sound right...
- danzThe simple answer to your questions are no and no.
I recently logged a problem with BEA WebLogic technical support regarding
this issue and their response is:
You have two choices. You can either use standard Java file i/o to write
your output to a file, or you can use our t3loggingservices to append
messages into the weblogic.log
The "jump point" for the logging services is at --
http://www.weblogic.com/docs51/classdocs/javadocs/weblogic/common/LogService
sDef.html
It is actually very easy to use -- after you import the proper packages into
your web application it is just as easy to use as System.out.println.
John J. Feigal Voice (651)766-8787 (main)
Sr. Technical Consultant (651)766-7249 (direct)
Ensodex, Inc. Fax (651)766-8792
4105 N. Lexington Ave., Suite 150 email [email protected]
Arden Hills, MN 55126 WebSite http://www.ensodex.com
"Jon Wynett" <[email protected]> wrote in message
news:[email protected]...
I'm running WebLogic as an NT Service. Is there any way to see the
System.out.println messages? Can they be redirected to the weblogic.log
file?
We were running through a DOS Window and saw all the messages, however we
ideally want to run Weblogic as a service.
"Rob Woollen" <[email protected]> wrote in message
news:[email protected]...
I'm guessing that you started the server with the .exe file on Windows.
If you're debugging with printlns, it's generally more conventient to
use the startWebLogic.sh or startWebLogic.cmd files to start the server
from a shell.
By default, you'll see stdout and stderr in the window.
-- Rob
Dan Zivkovic wrote:
Hi all,
This is a stupid newbie question, but I could not find the answer on
the
Web
site, so here goes: Where do System.out and System.err get written to?I'm
trying to deploy some plain-vanilla stateless session beans that do abunch
of println() calls, but I can't see the output anywhere! The WebLogic
Console shows no messages, /myserver/weblogic.log has nothinginteresting,
and there are no .log files anywhere that I can see. I even searched/tmp
and found nothing of interest. What am I missing? Do I have toexplicitly
open a file for System.out and/or System.err? That doesn't soundright...
- danz -
Rerouting System.out and System.err
Hi everybody,
I'm trying to make a small application with an agnostic back end that can print out its progress messages to either the console or a JTextArea, depending on whether the console front end or GUI front end is called. I originally created a small utility class that the agnostic back end extended, in which one could set a variable which told it to use the JTextArea or console. The solution seems a bit clumsy to me, though, so it crossed my mind; does anyone know if there is a way, in the main method of a program, to reroute System.out and System.err to a desired location?
Basically, I'd like functionality like this:
Console front end:
1. Start main
2. Create object for back end
3. All calls to System.out and System.err in back end route to console, as usual
GUI front end:
1. Start main
2. Create Object for back end
3. Create GUI
4. Set System.out and System.err to show up in GUI text field
5. All calls to System.out and System.err in back end route to text field in GUI
Is this possible? I have my somewhat hacked solution working fine, but I don't want to start ripping it apart too badly until I know if something simpler like this can work. Can anyone point me in the right direction, please?
Thanks,
Jezzica85Thanks for the explanation scphan,
In that case, I don't think that's exactly what I'm looking for.
To answer both your question and cotton's:
What I want to to is directly reroute System.out and System.err to a text area, only if I'm using a GUI. I'll try and explain it all, so if it gets long please bear with me--
I have 3 classes, Calculate, Console, and GUI.
Calculate is the back end of my application. Console is a front end class that allows the actions of Calculate to be run on the command line. GUI is a front end class that allows the actions of Calculate to be shown in a text area.
I currently have a class, Output, that Calculate extends, and uses to print out progress/error messages. Output has a JTextArea data member, and print/println data members. If the JTextArea is null, calling the print methods prints to the console, and if not, the print methods print to the text area. So, at the current moment, I have a solution similar to that which scphan described (although I didn't recognize the terminology at first--apologies, it's almost 3 AM here).
What I was wondering is if there is a simpler, more elegant way to do this. I have a few different small applications that have a similar setup to this one, and all the background classes must extend the Output class to work. If creating a class that every back end class must extend is the best way to do this, then I won't mess with what I have, but if there is a more elegant solution I've overlooked, I'd like to use that instead.
I hope that's clear, sorry if there was any confusion.
Thanks,
Jezzica85 -
Replace System.out and System.err
Hi there,
i got an Applet/Application Hybrid and i want to replace the System.out and System.err - Stream with my personal Streams.
When started as an Application it shell be given out to a file and when started as an Applet it shell be given out to the current HTML-Document...
But how do i realize that with the Applet. The thing with the Application and the file works fine, so don�t worry about that..
so in short my question is:
how can i replace/modify the System.out and System.err Streams in a way so that the output will be given the current HTML-Document when started as an Applet?
thx anyway
cu Errraddicatori know this method, but i don�t know how to make a PrintStream that gives the input to the HTML-Document...
excuse me if my kind of expressions were not so excactly...
thx anyway
cu Errraddicator -
System.out and System.err How to get to show up in log
Does anyone know if there is anyway to get System.out and System.err
messages to appear in the log?
Trying to build and debug a JSP project is a complete nightmare when the
remote developers cannot see System.out or System.err messages from helper
classes.
Platform= Windows NT 4.0
Weblogic running as a Service
Thanks in advance!Write a wrapper class to redirect the std out to what ever stream you want.
HTH
Saman -
Temporarily routing System.out and System.err to a String
Hi everybody,
Does anyone know of a way to temporarily route System.out and System.err directly from the console into a String, then set it back to its default to the console? I know how to reroute to a text area:
TextAreaOutputStream taos = new TextAreaOutputStream(yourTextArea);
PrintStream ps = new PrintStream(taos);
System.setErr(ps);
System.setOut(ps);But it doesn't seem like there is either a way to reroute to a String or a way to switch back to the default routing afterward. Can anyone give me some advice on how to do this, please?
Thanks,
Jezzica85Too late to the party?
import java.io.*;
public class Redirection {
public static void main(String[] args) {
System.out.println("To console");
PrintStream old = System.out;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(baos);
System.setOut(ps);
System.out.println("To memory");
System.out.print("No 'ln'");
//System.out.flush(); //needed?
System.setOut(old);
System.out.println("To console again?");
System.out.println("earlier I wrote...");
byte[] data = baos.toByteArray();
String message = new String(data);
System.out.println(message);
} -
OPMN system.out and system.err log rotation?
I would like to rotate the log generated by OPMN by default for system.out & system.err, which is named:
OC4J~APPNAME~home~default_island~1
I see the entries in the opmn.xml file for the ons.log and ipm.log which ARE being rotated properly. I've read that you can redefine the log file for system.out and system.err, but can't find any about rotating these logs.
Does anyone have any info about this topic?If anyone's curious and is trying to do this themselves, I eventually asked Oracle, who stated it could not be done.
-
No System.out or System.err when Debugging in workshop
I'm running workshop 8.1.3. When I debug my application I can see it process several lines with System.out and System.err. However I can not find the ouput anywhere. I've checked the Build window, output window among others but cannot find any of the output. What am I doing wrong ?
Probably the output is going to the WebLogic window. On Windows, it would be the command prompt window where the server instance is launched.
I'm running workshop 8.1.3. When I debug my
application I can see it process several lines with
System.out and System.err. However I can not find the
ouput anywhere. I've checked the Build window, output
window among others but cannot find any of the
output. What am I doing wrong ? -
Is it possible to redirect System.out and System.in for a thread
I would like to run two threads. One should keep writing to System.out and System.in. The other thread output written to System.out and System.in shoudl be captured and written to a file. Is this possible? I don't think so, but perhaps someone know some workaround.
raspedhmmm sure it's possible. You can write an outputstream that does different things depending on which thread is running, and then set system.out to a printstream that writes to that outputstream.
-
System.out.println in gui--- question
Hello People.
First of all, I'm new to the forums, so if it doesn't belong here, plese tell me where to post questions like this.
The Problem:
I have a GUI and another class,which contains the Program.
Here's the code of my class:
int Battle(String CharName) {
System.out.println(CharName + " Is fighting agains a monster");
while (CharHP > 0 && MonsterHP != 0) {
MonsterHP = MonsterHP - CharDmg;
System.out.println("The monster has " + MonsterHP + "Hitpoints left ");
CharHP = CharHP - MonsterDamage;
System.out.println(CharName + " has " + CharHP + " Hitpoints left");
if (MonsterHP == 0) {
System.out.println(CharName + "Has lost the fight!");
CharEXP = CharEXP + 20;
System.out.println("You have gained " + CharEXP + " Exp");
if (CharHP == 0) {
System.out.println("You have lost the fight!");
return CharHP;
}So what would be the code to print all the "System.out.println's" here into the gui test area?camickr wrote:
Check out the [Message Console|http://www.camick.com/java/blog.html?name=message-console].
Just out of curiosity, how do you come up with ideas for all the awesome stuff on your blog? -
System.out and System.err to files
Hi !
Could somebody tell me, how I can forward all System.out.println and System.err.println Messages from
my Java modules (EJB, Servlets) to different files respectively.
Thanks
SteveI think you could create PrinStreamS from your desired output files and then use System.setOut(<...>) and System.setErr(<...>). Place this code in a servlet that you load at startup...
-
Redirecting System.out and System.err to files
Is there a way I can configure my web-appliction (in web.xml or something) to redirect all the output (.err and .out) to specific files?
I think you could create PrinStreamS from your desired output files and then use System.setOut(<...>) and System.setErr(<...>). Place this code in a servlet that you load at startup...
-
How to capture System.err and System.out in a method?
Is there some way to capture everything that is sent to System.err or System.out and have it instead go to e.g. a method as a String?
The reason I want to do is this: I am invoking some method from a class that sends output to System.err and System.out but while that method is run, I want everything that goes to System.out or System.err to instead go to a String buffer or a Swing Scroll Pane.
What is the easiest way to do this?I want everything that goes to System.out or System.err to instead go to a String buffer or a Swing Scroll Pane.Then maybe you should be searching (and then posting) in the Swing forum. Thats where I've seen this question asked and answered many times in the past.
-
Passing System.out/System.err as parameters
I'm sure there must be a simple answer to this that I'm just not seeing, suggestions please.
I have a method in a logging utility that takes either a PrintWriter or a Printstream parameter as a target for logging and a second method that closes the log.
In principle either System.out or System.err could be passed in either directly or wrapped in a PrintWriter.
In the closing method I want to determine if one of these two PrintStreams were passed and if so skip the close() operation so as not to lose connectivity to stdout or stderr.
In the case of the PrintStream parameter I can use an identity check and condition a boolean to control closing the file.
The problem is the PrintWriter, if the utility user wraps these PrintStreams.
1: As I understand it closing the PrintWriter will cause the underlying OutputStream to close.
2: Since it's a protected field the underlying OutputStream is not visible to me.
3: I don't wish to subclass PrintWriter if there's another way to solve the problem.
Any ideas?Why don't you use a BufferedWriter() ?
-
One JVM with different system.out / system.err files
I have a menu application which allows me to launch different swingapps which runs inside one single JVM.
All applications have their own properties.file which is read and handled at the start of each application.
One property allows me to print all kind of system.err / system.out which i want to redirect to a specific file. This is implemented with following code:
if (isTRACE_ENABLED()){
try {
setTrace_out_log(new PrintStream(
new BufferedOutputStream(
new FileOutputStream(props.getProperty("TRACE_OUTLOG_FILE")),128), true));
System.setOut(getTrace_out_log());
setTrace_err_log(new PrintStream(
new BufferedOutputStream(
new FileOutputStream(props.getProperty("TRACE_ERRLOG_FILE")),128), true));
System.setErr(getTrace_err_log());
} catch(IOException e) {
e.printStackTrace();
}This works file but... all system.out and system.err is redirected to same file... which is not what i want.
Example:
debug property for menu application = enabled
debug property for app 1 = disabled
debug property for app 2 = enabled
In above case i want to have 4 new files:
- menuapp_out
- menuapp_err
- app2_out
- app2_err
This doesn't work, the files are created but after starting app2, the print-statements for the menu application are alse redirected to the app_2_xxx files. And when i finish app2, i do not get any print-output anymore
IMHO this is because the JVM only has 1 system.out and 1 system.err file. Is there some way to solve this?I understand that i need to use java.util.logger (JUL) or Log4j
Are there any (free) tools availabe to read/analyze the logfiles created by above tools?
Maybe you are looking for
-
Photoshop Touch won't run on HTC Flyer
I just ditched my Samsung Galaxy Tab 10.1v (600 Euro's) because Google, Samsung, and Vodafone refuse to release the Android 3.2 update. (It currently runs on Android 3.0.1, and Adobe Touch apps require 3.1.) So I bought me a HTC Flyer (500 Euro's), a
-
I previously posted a similar question, but I was not clear in my message. I know that files (categorized as PDF Documents, Movies, Presentations, Spreadsheets, etc.) in "all my files' in the FINDER are all my files and if I delete them, I am deletin
-
i have downloaded my previous purchases but they cut off at about 1.45 into the song this is really getting me fed up does anyone have a solution
-
Dialog program that lists an ALV Grid
Hello Experts, i want to create a <b>screen divided in two parts</b>. The <b>upper side</b> shows general(Header) information and the <b>lower side</b> shows detail information using ALV grid. When i select a record in the header of the Upper side gr
-
NEO 2 Problem SATA 3+4 dont work :( help!!
as post title, some reason I cant run my HDD off of SATA 3 or 4 even with stock speeds on everything, I want to over clock the board so not being able to use these will be a real pain, any ideas!?? Am using 1.5 bios with latest chipset drivers HDD is