[ 
https://issues.apache.org/jira/browse/LOG4J2-1178?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14974697#comment-14974697
 ] 

Gary Gregory edited comment on LOG4J2-1178 at 10/26/15 6:09 PM:
----------------------------------------------------------------

The PrintStream or PrintWriter is passed to the JDBC API implemented by the 
JDBC driver. Log4j does not need to know any more than that; and there is no 
point in it knowing more, the driver needs to cause Log4j to publish log events 
to this stream. The driver's setLogWriter(PrintStream|PrintWriter) can decide 
on the layout or just let the default kick in. The pseudo code could be:

getLoggerContext().getConfiguration().addAppender(PrintStreamAppender.createPrintStreamAppender(aPrintStream,
 myLayoutOrNone))
getLoggerContext().getConfiguration().reconfigure()?
// Or use the new builder API?

The PS/PW could end up going to a file, the console, a text pane, who knows, 
but that does not matter here. What matters is that the driver can find a way 
to publish its log events to this stream.






was (Author: garydgregory):
The PrintStream or PrintWriter is passed to the JDBC API implemented by the 
JDBC driver. Log4j does not need to know any more than that; and there is no 
point in it knowing more, the driver needs to cause Log4j to publish log events 
to this stream. The driver's setLogWriter(PrintStream|PrintWriter) can decide 
on the layout or just let the default kick in. The pseudo code could be:

getLoggerContext().getConfiguration().addAppender(PrintStreamAppender.createPrintStreamAppender(aPrintStream,
 myLayoutOrNone))
getLoggerContext().getConfiguration().reconfigure()?
// Or use the new builder API?

The PS/PW could end up going to a file, the console, a text pane, how knows, 
but that does not matter here. What matters is that the driver can find a way 
to publish its log events to this stream.





> Support use-case for JDBC's DataSource.setLogWriter(PrintStream)
> ----------------------------------------------------------------
>
>                 Key: LOG4J2-1178
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1178
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Appenders
>         Environment: Apache Maven 3.3.3 
> (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T04:57:37-07:00)
> Maven home: C:\Java\apache-maven-3.3.3\bin\..
> Java version: 1.7.0_79, vendor: Oracle Corporation
> Java home: C:\Program Files\Java\jdk1.7.0_79\jre
> Default locale: en_US, platform encoding: Cp1252
> OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
>            Reporter: Gary Gregory
>
> I am writing a JDBC driver. The JDBC Spec has a a method 
> [DataSource.setLogWriter(PrintStream)|https://docs.oracle.com/javase/8/docs/api/javax/sql/CommonDataSource.html#setLogWriter-java.io.PrintWriter-]
>  API drivers should implement.
> Users can drop our driver into any tool that talks JDBC or write their own 
> apps. In am concerned about the 'drop the driver anywhere' scenario, like in 
> an Eclipse based tool; that may or may not use Eclipse DTP. Or anything else.
> The 
> [setLogWriter()|https://docs.oracle.com/javase/8/docs/api/javax/sql/CommonDataSource.html#setLogWriter-java.io.PrintWriter-]
>  API can be called at any time, after Log4j has initialized itself for 
> example.
> I do all my driver logging through Log4j. If a tool calls 
> [setLogWriter()|https://docs.oracle.com/javase/8/docs/api/javax/sql/CommonDataSource.html#setLogWriter-java.io.PrintWriter-],
>  I'd like the given PrintStream to become an Appender such that Log4j output 
> appears there.
> The only way I see to do that is through pseudo-code like 
> "getLoggerContext().getConfiguration().addAppender(PrintStreamAppender.createPrintStreamAppender(aPrintStream))"
> I think that would need to be followed by a full reconfigure.
> Can we use our new builder API to add to the current config and reconfigure?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org

Reply via email to