prabhakar
prabhakar

Reputation: 101

Where does the system.out.println output go in Oracle Java class?

I have loaded a Java class into Oracle using the loadjava utility.

This class has some system.out.println messages.

When I execute a method from this class I want to see the the sysout messages.

Where can I find these messages?

Upvotes: 10

Views: 18598

Answers (2)

darioo
darioo

Reputation: 47183

An Oracle article provides some useful information.

Quote:

Your class:

public class SimpleJava {
   public void main(String[] args) {
      System.out.println("Here we are");
    }
}

Now, compile and load your class:

C:\oracle9i\bin>javac SimpleJava.java
C:\oracle9i\bin>loadjava -user scott/tiger SimpleJava.class

From SQL*Plus, create the PL/SQL wrapper to invoke the newly loaded Java class:

SQL> create or replace procedure call_simplejava
  2  as language java
  3  name 'SimpleJava.showMessage()';
  4  /

Execute the code from SQL*Plus:

SQL> set serveroutput on;
SQL> call dbms_java.set_output(50);

Call completed.

SQL> execute call_simplejava;
Here we are

Upvotes: 7

oluies
oluies

Reputation: 17831

System.out and System.err writes to the current trace files.

You can enable output to SQL*Plus or similar with

set serveroutput on size 10000

exec dbms_java.set_output(10000)

See the Java Developer's Guide here.

That said, you should ask yourself, what do I want to log, that my client would not like to see returned in the interface to my procedure?. The answer to that is usually nothing.

I have been able to set up http://www.slf4j.org/ with a JDBC database appender (I am unsure of the specifics).

Upvotes: 7

Related Questions