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: Have a question about how DefaultConfiguration and PatternLayout interact.
Date Mon, 26 May 2014 02:58:27 GMT
I was hitting it because I wasn't passing "this". I was using
DefaultConfiguration as the default field value for config in the
PatternLayout.Builder class.


On 25 May 2014 21:46, Remko Popma <remko.popma@gmail.com> wrote:

> I meant: ...where you were hitting the constructor loop you mentioned
> earlier.
>
>
> On Monday, May 26, 2014, Remko Popma <remko.popma@gmail.com> wrote:
>
>> I see, so you need this for property substitution in the header/footer.
>> In that case you probably need the real config. If it works to pass "this"
>> when creating the layout in the DefaultConfiguration constructor, then
>> great. (I just assumed that this is where you hit the constructor eternal
>> loop.)
>>
>>
>> Sent from my iPhone
>>
>> On 2014/05/26, at 11:27, Matt Sicker <boards@gmail.com> wrote:
>>
>> Well, it looks like the only place config is used is if header or footer
>> are non-null. There it is used in order to get its StrSubstitutor.
>> Otherwise, config is always checked for null. So DefaultConfiguration could
>> probably use NullConfiguration, or it could even use null.
>>
>> Either way, wouldn't it work to use "this" during the
>> DefaultConfiguration constructor? That would make the PatternLayout it's
>> creating have the most correct configuration set.
>>
>>
>> On 25 May 2014 21:03, Remko Popma <remko.popma@gmail.com> wrote:
>>
>> Ok, so until now, DefaultConfiguration uses a PatternLayout with a null
>> Configuration. But now you're considering a change that requires that
>> PatternLayout has a non-null Configuration.
>>
>> I guess it depends on how you intend to use the PatternLayout's
>> Configuration. If all that's needed is for it to be non-null, we could pass
>> a NullConfiguration to PatternLayout.createLayout in the
>> DefaultConfiguration constructor (passing "this" won't work).
>> Is that enough, or does the PatternLayout's Configuration need to be the
>> "real" config?
>>
>> That's why I'm asking why you need this.
>>
>> Sent from my iPhone
>>
>> On 2014/05/26, at 10:13, Matt Sicker <boards@gmail.com> wrote:
>>
>> DefaultConfiguration needs a Layout, and it uses PatternLayout for that.
>> In PatternLayout, I don't want its Configuration to be null due to the
>> field being used elsewhere by PatternLayout. Thus, to include a
>> DefaultConfiguration in PatternLayout, and then a PatternLayout in
>> DefaultConfiguration, I have to leak the this reference during construction
>> to avoid creating an infinite loop of constructors.
>>
>>
>> On 25 May 2014 20:10, Remko Popma <remko.popma@gmail.com> wrote:
>>
>> I had a look at the code and it may not be easy to make changes. Can we
>> go back a step and can you explain what you're trying to achieve? (What do
>> you want to change & why?)
>>
>> Sent from my iPhone
>>
>> On 2014/05/26, at 9:08, Matt Sicker <boards@gmail.com> wrote:
>>
>> Actually, that still leaves the problem of specifying a Configuration for
>> the DefaultConfigurationLayout. PatternLayout is final right now, and the
>> default pattern is "%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} -
>> %msg%n".
>>
>>
>> On 25 May 2014 19:03, Matt Sicker <boards@gmail.com> wrote:
>>
>> That sounds like a better idea. Let me see how well it works out in code.
>>
>>
>> On 25 May 2014 18:52, Remko Popma <remko.popma@gmail.com> wrote:
>>
>> Perhaps DefaultConfigurationLayout would be a better name for such alayout, actually.
>>
>>
>> On Monday, May 26, 2014, Remko Popma <remko.popma@gmail.com> wrote:
>>
>> How about having a DefaultLayout for use *only* by DefaultConfiguration?
>> The formatters used by this layout can be hard-coded: level, timestamp,
>> message.
>> Thoughts?
>>
>> Sent from my iPhone
>>
>> On 2014/05/26, at 8:38, Matt Sicker <boards@gmail.com> wrote:
>>
>>


-- 
Matt Sicker <boards@gmail.com>

Mime
View raw message