Unfortunately I am at work and can’t give this my full attention. I will try to find some time tonight to figure something out.
Ralph On May 20, 2014, at 1:40 PM, Gary Gregory <garydgreg...@gmail.com> wrote: > How about this hack for PatterLayout: > > @Override > public byte[] getHeader() { > byte[] myHeader = super.getHeader(); > final Charset cs = getCharset(); > String strHeader = "# Conversion pattern: " + this.conversionPattern; > if (myHeader != null) { > strHeader = config.getStrSubstitutor().replace(new > String(myHeader, cs)) + Constants.LINE_SEPARATOR + strHeader; > } > return strHeader.getBytes(cs); > } > > ? > > Gary > > > On Tue, May 20, 2014 at 3:34 PM, Gary Gregory <garydgreg...@gmail.com> wrote: > On Tue, May 20, 2014 at 2:46 PM, Ralph Goers <ralph.go...@dslextreme.com> > wrote: > You could implement a lookup but both the syntax of how it would be specified > and how it would work would be odd. Or you could implement a > PatternConverter while would allow you do invoke PatternParser.parse, but > that would also be awkward as they typically think they are working with a > LogEvent. > > So, two odd possible solutions, not a great smell. > > How do you (or anyone else ;-) see this done well? > > Gary > > > Note that what you have below - %pattern - doesn’t match with how Lookups > work. > > Check, that was just a placeholder string. > > Gary > > Ralph > > On May 20, 2014, at 10:48 AM, Gary Gregory <garydgreg...@gmail.com> wrote: > >> I was thinking of experimenting with this in PatternLayout: >> >> @Override >> public byte[] getHeader() { >> byte [] header = super.getHeader(); >> if (header != null) { >> return config.getStrSubstitutor().replace(new String(header, >> getCharset())).getBytes(getCharset()); >> } >> return header; >> } >> >> Why not support this with a marker like %pattern (of whatever). But how can >> we tell the config's StrSubstitor about this layout's pattern string? >> >> In the ctor we could do: >> >> this.config = config; >> this.config.getStrSubstitutor().getStrLookup().put("pattern", pattern); >> >> But StrLookup does not support put(String, String) of course... >> >> What would be a supported way to do this or do we need to tweak things a bit? >> >> Gary >> >> >> >> >> >> >> On Tue, May 20, 2014 at 9:27 AM, Gary Gregory <garydgreg...@gmail.com> wrote: >> For best usability I am wondering if this should be an option, but if it is >> it should be on by default. Thoughts? >> >> Gary >> >> >> On Mon, May 19, 2014 at 9:42 PM, Gary Gregory <garydgreg...@gmail.com> wrote: >> On Mon, May 19, 2014 at 9:37 PM, Ralph Goers <ralph.go...@dslextreme.com> >> wrote: >> It sounds like you want that in the header of the file? That sounds like an >> extension of what PatternLayout currently does. You would just want to set >> the header to include the pattern. Of course, this doesn’t apply to >> Appenders that use some other layout. >> >> Yes in the header. whatever a header means for a text file appender for >> example, maybe it is a "comment" like a comment in a property file: # my >> format. >> >> This only needs to apply to "unstructured" layouts, which are all text based >> layouts, like the File and Console, I think these all share a streaming >> super class/manager. For a database appender and other structured layouts >> (XML, JSON, and so on), this does not make sense. >> >> Gary >> >> Gary >> >> Ralph >> >> On May 19, 2014, at 12:47 PM, Gary Gregory <garydgreg...@gmail.com> wrote: >> >>> I get logs from users that are files, which is nice. >>> >>> I'd like the log to have a line that shows the conversion pattern used to >>> create the log events. >>> >>> This would let me create a nice color filter in our tools. >>> >>> Yes, I know users could use some kind of structured appender in addition to >>> a log file, but they won't for my convenience... >>> >>> So I wonder if we could have setting for this? Our tools create the config, >>> so we could turn it on no matter what conversion pattern they use. >>> >>> Gary >>> >>> -- >>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>> Java Persistence with Hibernate, Second Edition >>> JUnit in Action, Second Edition >>> Spring Batch in Action >>> Blog: http://garygregory.wordpress.com >>> Home: http://garygregory.com/ >>> Tweet! http://twitter.com/GaryGregory >> >> >> >> >> -- >> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >> Java Persistence with Hibernate, Second Edition >> JUnit in Action, Second Edition >> Spring Batch in Action >> Blog: http://garygregory.wordpress.com >> Home: http://garygregory.com/ >> Tweet! http://twitter.com/GaryGregory >> >> >> >> -- >> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >> Java Persistence with Hibernate, Second Edition >> JUnit in Action, Second Edition >> Spring Batch in Action >> Blog: http://garygregory.wordpress.com >> Home: http://garygregory.com/ >> Tweet! http://twitter.com/GaryGregory >> >> >> >> -- >> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >> Java Persistence with Hibernate, Second Edition >> JUnit in Action, Second Edition >> Spring Batch in Action >> Blog: http://garygregory.wordpress.com >> Home: http://garygregory.com/ >> Tweet! http://twitter.com/GaryGregory > > > > > -- > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org > Java Persistence with Hibernate, Second Edition > JUnit in Action, Second Edition > Spring Batch in Action > Blog: http://garygregory.wordpress.com > Home: http://garygregory.com/ > Tweet! http://twitter.com/GaryGregory > > > > -- > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org > Java Persistence with Hibernate, Second Edition > JUnit in Action, Second Edition > Spring Batch in Action > Blog: http://garygregory.wordpress.com > Home: http://garygregory.com/ > Tweet! http://twitter.com/GaryGregory