If it's a CSV, I know the format ;-) Gary
On Tue, May 20, 2014 at 4:42 PM, Paul Benedict <pbened...@apache.org> wrote: > Gary, you could make it CSV and use all your hard work in commons csv :-) > > > Cheers, > Paul > > > On Tue, May 20, 2014 at 3: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<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: garydgreg...@gmail.com | ggreg...@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: garydgreg...@gmail.com | ggreg...@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: garydgreg...@gmail.com | ggreg...@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: garydgreg...@gmail.com | ggreg...@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: garydgreg...@gmail.com | ggreg...@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: garydgreg...@gmail.com | ggreg...@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