logging-log4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matt Sicker <boa...@gmail.com>
Subject Re: Would like to change a bit of the SimpleLogger API. Feedback requested.
Date Tue, 25 Mar 2014 04:52:47 GMT
It uses the platform default encoding (which isn't always desired). I guess
maybe we can wait for a feature request first if it's really useful.


On 24 March 2014 23:47, Remko Popma <remko.popma@gmail.com> wrote:

> Do SimpleLogger/StatusLogger use UTF8? I think (and hope) not, because
> the console usually only supports the platform default encoding.
> See also LOG4J2-255 for the gory details. :-)
>
>
> On Tuesday, March 25, 2014, Matt Sicker <boards@gmail.com> wrote:
>
>> Wait which stream stuff? The logger stream? Because that's totally
>> separate. I was talking about the underlying OutputStream used in
>> SimpleLogger/StatusLogger. I think this would be useful in regions where
>> UTF-8 is not widely used (e.g., Asia).
>>
>>
>> On 24 March 2014 22:16, Gary Gregory <garydgregory@gmail.com> wrote:
>>
>> Stepping back a bit... what real life problem is all of this stream stuff
>> solving? I hope we have good docs ;)
>>
>> Gary
>>
>>
>> -------- Original message --------
>> From: Matt Sicker
>> Date:03/24/2014 22:02 (GMT-05:00)
>> To: Log4J Developers List
>> Subject: Re: Would like to change a bit of the SimpleLogger API. Feedback
>> requested.
>>
>> Good point. So in order to add configurable charset support, it would be
>> best to continue using streams instead of writers. The character set should
>> probably be stored in SimpleLoggerContext. I don't remember if specific
>> charset support is already there for core.Logger[Context], so that might be
>> worth looking into as well down the line.
>>
>>
>> On 24 March 2014 20:23, Bruce Brouwer <bruce.brouwer@gmail.com> wrote:
>>
>> I think it should remain a PrintStream. The PrintWriter still uses a
>> charset by defaulting to the platform encoding, but you have no way to
>> choose it unless you specify that you are writing to a file. I think
>> PrintWriter needs some more constructor options when giving it an
>> OutputStream, but that's just my opinion. At least with PrintWriter you
>> have the option to choose the charset when giving it an OutputStream.
>>
>> What might make sense is to change the SimpleLoggerContext constructor to
>> pull out the charset name from the props when falling into the case where
>> it is creating a FileOutputStream. All you need to change is the line that
>> currently reads like this:
>>
>> ps = new PrintStream(os);
>>
>> change it to something like this:
>>
>> final String charset =
>> props.getStringProperty(SimpleLoggerContext.SYSTEM_PREFIX + "charset");
>> if (charset != null) {
>>   ps = new PrintStream(os, false, charset);
>> } else {
>>   ps = new PrintStream(os);
>> }
>>
>> That will need another catch block, but that shouldn't be a big problem
>> to figure out.
>>
>>
>>
>> On Mon, Mar 24, 2014 at 12:20 AM, Matt Sicker <boards@gmail.com> wrote:
>>
>> From what I can tell, it's when you use OutputStream instead of Writer
>> that you need to specify charsets. I think the writers have a more friendly
>> configuration mechanism just via Java properties or something. I'm not
>> fully sure, actually.
>>
>>
>> On 23 March 2014 23:09, Ralph Goers <ralph.goers@dslextreme.com> wrote:
>>
>> For StatusLogger you would then have to add a charset attribute to the
>> configuration element wouldn’t you?
>>
>> Ralph
>>
>> On Mar 23, 2014, at 7:09 PM, Matt Sicker <boards@gmail.com> wrote:
>>
>> It's mainly for StatusLogger, but that idea did cross my mind.
>>
>>
>> On 23 March 2014 21:00, Ralph Goers <ralph.goers@dslextreme.com> wrote:
>>
>> I’m sorry, I didn’t ask the question correctly.  SimpleLogger doesn’t
>> currently accept a charset. Are you planning on adding a new properly to
>> SimpleLoggerContext to support this?  I don’t really have an objection but
>> am just wondering when other than the platform’s default encoding would
>> want to be used. After all, SimpleLogger wasn’t really
>>
>> --
>> Matt Sicker <boards@gmail.com>
>>
>


-- 
Matt Sicker <boards@gmail.com>

Mime
View raw message