[ 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