You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by Matt Sicker <bo...@gmail.com> on 2015/10/25 04:25:32 UTC

Re: Thoughts for IO Streams module

Is there a JIRA issue for this? This could be pretty easily done as an
appender like you said, and just use its start() method to setLogWriter.

On 19 June 2015 at 19:16, Gary Gregory <ga...@gmail.com> wrote:

> I'm not saying what I want to do clearly enough, let's see...
>
> I am writing a JDBC driver. The JDBC Spec has a
> DataSource.setLogWriter(PrintStream) 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 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,
> 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))"
>
> Gary
>
> On Fri, Jun 19, 2015 at 7:48 AM, Ralph Goers <ra...@dslextreme.com>
> wrote:
>
>> Sorry, I misunderstood the question.
>>
>> I’d look for a way to call the setLogWriter API during log4j
>> configuration.
>>
>> Ralph
>>
>> On Jun 18, 2015, at 6:35 PM, Gary Gregory <ga...@gmail.com> wrote:
>>
>> I do not understand "Just have the initial writer be a noop."
>>
>> Gary
>>
>> On Thu, Jun 18, 2015 at 5:40 PM, Ralph Goers <ra...@dslextreme.com>
>> wrote:
>>
>>> Why reconfigure? Just have the initial writer be a noop.
>>>
>>> Sent from my iPhone
>>>
>>> On Jun 18, 2015, at 3:49 PM, Gary Gregory <ga...@gmail.com>
>>> wrote:
>>>
>>> Hi All:
>>>
>>> I have a use case where I use Log4j 2 for logging within a JDBC driver.
>>> I'd like to support the DataSource#setLogWriter(PrintStream) API in a
>>> fairly simple way. Granting that Log4j must be configured, if the user
>>> calls setLogWriter, I'd like to add a "print writer appender" to Log4j such
>>> that the user's PrintWriter becomes an appender target for log events.
>>>
>>> Any thoughts on getting this to work considering that the setLogWriter
>>> API can be called at any time in an apps life cycle. If I can get a clean
>>> impl, I'd like to put it in the iostreams module.
>>>
>>> Does this require a full reconfigure of log4j or is there a way to "just
>>> add an appender" programatically?
>>>
>>> Gary
>>>
>>> --
>>> E-Mail: garydgregory@gmail.com | ggregory@apache.org
>>> Java Persistence with Hibernate, Second Edition
>>> <http://www.manning.com/bauer3/>
>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
>>> Spring Batch in Action <http://www.manning.com/templier/>
>>> Blog: http://garygregory.wordpress.com
>>> Home: http://garygregory.com/
>>> Tweet! http://twitter.com/GaryGregory
>>>
>>>
>>
>>
>> --
>> E-Mail: garydgregory@gmail.com | ggregory@apache.org
>> Java Persistence with Hibernate, Second Edition
>> <http://www.manning.com/bauer3/>
>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
>> Spring Batch in Action <http://www.manning.com/templier/>
>> Blog: http://garygregory.wordpress.com
>> Home: http://garygregory.com/
>> Tweet! http://twitter.com/GaryGregory
>>
>>
>>
>
>
> --
> E-Mail: garydgregory@gmail.com | ggregory@apache.org
> Java Persistence with Hibernate, Second Edition
> <http://www.manning.com/bauer3/>
> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
> Spring Batch in Action <http://www.manning.com/templier/>
> Blog: http://garygregory.wordpress.com
> Home: http://garygregory.com/
> Tweet! http://twitter.com/GaryGregory
>



-- 
Matt Sicker <bo...@gmail.com>

Re: Thoughts for IO Streams module

Posted by Ralph Goers <ra...@dslextreme.com>.
I just updated the issue.  To be honest, I think what you are suggesting doesn’t make much sense to me.

Ralph

> On Oct 25, 2015, at 3:49 PM, Gary Gregory <ga...@gmail.com> wrote:
> 
> I think you have it backwards. Its when someone calls the driver's JDBC's setLogWriter() that this method would then reconfigure log4j with a new appender. Or again, I 'm not explaining myself clearly. Sorry.
> 
> I created https://issues.apache.org/jira/browse/LOG4J2-1178 <https://issues.apache.org/jira/browse/LOG4J2-1178>
> 
> Any and all help is appreciated to flush this out.
> 
> Thank you,
> Gary
> 
> On Sat, Oct 24, 2015 at 8:25 PM, Matt Sicker <boards@gmail.com <ma...@gmail.com>> wrote:
> Is there a JIRA issue for this? This could be pretty easily done as an appender like you said, and just use its start() method to setLogWriter.
> 
> On 19 June 2015 at 19:16, Gary Gregory <garydgregory@gmail.com <ma...@gmail.com>> wrote:
> I'm not saying what I want to do clearly enough, let's see...
> 
> I am writing a JDBC driver. The JDBC Spec has a DataSource.setLogWriter(PrintStream) 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 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, 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))"
> 
> Gary
> 
> On Fri, Jun 19, 2015 at 7:48 AM, Ralph Goers <ralph.goers@dslextreme.com <ma...@dslextreme.com>> wrote:
> Sorry, I misunderstood the question.
> 
> I’d look for a way to call the setLogWriter API during log4j configuration.
> 
> Ralph
> 
>> On Jun 18, 2015, at 6:35 PM, Gary Gregory <garydgregory@gmail.com <ma...@gmail.com>> wrote:
>> 
>> I do not understand "Just have the initial writer be a noop."
>> 
>> Gary
>> 
>> On Thu, Jun 18, 2015 at 5:40 PM, Ralph Goers <ralph.goers@dslextreme.com <ma...@dslextreme.com>> wrote:
>> Why reconfigure? Just have the initial writer be a noop.
>> 
>> Sent from my iPhone
>> 
>> On Jun 18, 2015, at 3:49 PM, Gary Gregory <garydgregory@gmail.com <ma...@gmail.com>> wrote:
>> 
>>> Hi All:
>>> 
>>> I have a use case where I use Log4j 2 for logging within a JDBC driver. I'd like to support the DataSource#setLogWriter(PrintStream) API in a fairly simple way. Granting that Log4j must be configured, if the user calls setLogWriter, I'd like to add a "print writer appender" to Log4j such that the user's PrintWriter becomes an appender target for log events.
>>> 
>>> Any thoughts on getting this to work considering that the setLogWriter API can be called at any time in an apps life cycle. If I can get a clean impl, I'd like to put it in the iostreams module.
>>> 
>>> Does this require a full reconfigure of log4j or is there a way to "just add an appender" programatically?
>>> 
>>> Gary
>>> 
>>> -- 
>>> E-Mail: garydgregory@gmail.com <ma...@gmail.com> | ggregory@apache.org  <ma...@apache.org>
>>> Java Persistence with Hibernate, Second Edition <http://www.manning.com/bauer3/>
>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
>>> Spring Batch in Action <http://www.manning.com/templier/>
>>> Blog: http://garygregory.wordpress.com <http://garygregory.wordpress.com/> 
>>> Home: http://garygregory.com/ <http://garygregory.com/>
>>> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>
>> 
>> 
>> -- 
>> E-Mail: garydgregory@gmail.com <ma...@gmail.com> | ggregory@apache.org  <ma...@apache.org>
>> Java Persistence with Hibernate, Second Edition <http://www.manning.com/bauer3/>
>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
>> Spring Batch in Action <http://www.manning.com/templier/>
>> Blog: http://garygregory.wordpress.com <http://garygregory.wordpress.com/> 
>> Home: http://garygregory.com/ <http://garygregory.com/>
>> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>
> 
> 
> 
> -- 
> E-Mail: garydgregory@gmail.com <ma...@gmail.com> | ggregory@apache.org  <ma...@apache.org>
> Java Persistence with Hibernate, Second Edition <http://www.manning.com/bauer3/>
> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
> Spring Batch in Action <http://www.manning.com/templier/>
> Blog: http://garygregory.wordpress.com <http://garygregory.wordpress.com/> 
> Home: http://garygregory.com/ <http://garygregory.com/>
> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>
> 
> 
> -- 
> Matt Sicker <boards@gmail.com <ma...@gmail.com>>
> 
> 
> 
> -- 
> E-Mail: garydgregory@gmail.com <ma...@gmail.com> | ggregory@apache.org  <ma...@apache.org>
> Java Persistence with Hibernate, Second Edition <http://www.manning.com/bauer3/>
> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
> Spring Batch in Action <http://www.manning.com/templier/>
> Blog: http://garygregory.wordpress.com <http://garygregory.wordpress.com/> 
> Home: http://garygregory.com/ <http://garygregory.com/>
> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>

Re: Thoughts for IO Streams module

Posted by Gary Gregory <ga...@gmail.com>.
I think you have it backwards. Its when someone calls the driver's JDBC's
setLogWriter() that this method would then reconfigure log4j with a new
appender. Or again, I 'm not explaining myself clearly. Sorry.

I created https://issues.apache.org/jira/browse/LOG4J2-1178

Any and all help is appreciated to flush this out.

Thank you,
Gary

On Sat, Oct 24, 2015 at 8:25 PM, Matt Sicker <bo...@gmail.com> wrote:

> Is there a JIRA issue for this? This could be pretty easily done as an
> appender like you said, and just use its start() method to setLogWriter.
>
> On 19 June 2015 at 19:16, Gary Gregory <ga...@gmail.com> wrote:
>
>> I'm not saying what I want to do clearly enough, let's see...
>>
>> I am writing a JDBC driver. The JDBC Spec has a
>> DataSource.setLogWriter(PrintStream) 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 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,
>> 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))"
>>
>> Gary
>>
>> On Fri, Jun 19, 2015 at 7:48 AM, Ralph Goers <ra...@dslextreme.com>
>> wrote:
>>
>>> Sorry, I misunderstood the question.
>>>
>>> I’d look for a way to call the setLogWriter API during log4j
>>> configuration.
>>>
>>> Ralph
>>>
>>> On Jun 18, 2015, at 6:35 PM, Gary Gregory <ga...@gmail.com>
>>> wrote:
>>>
>>> I do not understand "Just have the initial writer be a noop."
>>>
>>> Gary
>>>
>>> On Thu, Jun 18, 2015 at 5:40 PM, Ralph Goers <ralph.goers@dslextreme.com
>>> > wrote:
>>>
>>>> Why reconfigure? Just have the initial writer be a noop.
>>>>
>>>> Sent from my iPhone
>>>>
>>>> On Jun 18, 2015, at 3:49 PM, Gary Gregory <ga...@gmail.com>
>>>> wrote:
>>>>
>>>> Hi All:
>>>>
>>>> I have a use case where I use Log4j 2 for logging within a JDBC driver.
>>>> I'd like to support the DataSource#setLogWriter(PrintStream) API in a
>>>> fairly simple way. Granting that Log4j must be configured, if the user
>>>> calls setLogWriter, I'd like to add a "print writer appender" to Log4j such
>>>> that the user's PrintWriter becomes an appender target for log events.
>>>>
>>>> Any thoughts on getting this to work considering that the setLogWriter
>>>> API can be called at any time in an apps life cycle. If I can get a clean
>>>> impl, I'd like to put it in the iostreams module.
>>>>
>>>> Does this require a full reconfigure of log4j or is there a way to
>>>> "just add an appender" programatically?
>>>>
>>>> Gary
>>>>
>>>> --
>>>> E-Mail: garydgregory@gmail.com | ggregory@apache.org
>>>> Java Persistence with Hibernate, Second Edition
>>>> <http://www.manning.com/bauer3/>
>>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
>>>> Spring Batch in Action <http://www.manning.com/templier/>
>>>> Blog: http://garygregory.wordpress.com
>>>> Home: http://garygregory.com/
>>>> Tweet! http://twitter.com/GaryGregory
>>>>
>>>>
>>>
>>>
>>> --
>>> E-Mail: garydgregory@gmail.com | ggregory@apache.org
>>> Java Persistence with Hibernate, Second Edition
>>> <http://www.manning.com/bauer3/>
>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
>>> Spring Batch in Action <http://www.manning.com/templier/>
>>> Blog: http://garygregory.wordpress.com
>>> Home: http://garygregory.com/
>>> Tweet! http://twitter.com/GaryGregory
>>>
>>>
>>>
>>
>>
>> --
>> E-Mail: garydgregory@gmail.com | ggregory@apache.org
>> Java Persistence with Hibernate, Second Edition
>> <http://www.manning.com/bauer3/>
>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
>> Spring Batch in Action <http://www.manning.com/templier/>
>> Blog: http://garygregory.wordpress.com
>> Home: http://garygregory.com/
>> Tweet! http://twitter.com/GaryGregory
>>
>
>
>
> --
> Matt Sicker <bo...@gmail.com>
>



-- 
E-Mail: garydgregory@gmail.com | ggregory@apache.org
Java Persistence with Hibernate, Second Edition
<http://www.manning.com/bauer3/>
JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
Spring Batch in Action <http://www.manning.com/templier/>
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory