People can currently do this by simply implementing the Appender interface and adding it with Logger.addAppender() in the setup method. Why do we need something more elaborate ?
Ram On Mon, Apr 10, 2017 at 10:30 AM, Sergey Golovko <ser...@datatorrent.com> wrote: > The configuration of a log4j appender via log4j configuration file is a > static configuration that cannot be disabled/enabled and managed > dynamically by an application designer. The programmatic approach will > allow an application designer to specify which of the available log4j > appenders should be used for the specific application. > > It is not necessary Apex should use the predefined log4j appenders only. > The log4j events contain useful but the very limited number of properties > which values can be printed into output log4j sources. But based on the > knowledge of the software product workflow, the custom defined log4j > appender can extend a list of predefined output log events properties and, > for instance for Apex, return: node, user name, application name, > application id, container id, operator name, etc. > > Also the output log events that are generated by a custom defined log4j > appender can be stored and indexed by any type of a full text search > database. It will allow the customers and developers to simplify collection > of log events statistics and searching/filtering of specific events for > debugging and investigation. > > Thanks, > Sergey > > > On Mon, Apr 10, 2017 at 6:34 AM, Vlad Rozov <v.ro...@datatorrent.com> > wrote: > > > +1 Apex engine does not own log4j config file - it is provided either by > > Hadoop or an application. Hadoop log4j config does not necessarily meet > > application logging requirements, but if log4j is provided by an > > application designer, who can only specify what to log, it may not meet > > operations requirements. Dev-ops should have an ability to specify where > to > > log depending on the available infrastructure at run-time. > > > > It will be good to have an ability not only specify extra log4j appenders > > at lunch time, but also at run-time, the same way how log4j logger levels > > may be changed. > > > > Thank you, > > > > Vlad > > > > On 4/9/17 23:14, Priyanka Gugale wrote: > > > >> We can always write a custom appender and add it by changing root > appender > >> in log4j config file. Can you explain how adding appender grammatically > >> would help? > >> > >> -Priyanka > >> > >> On Sun, Apr 9, 2017 at 11:50 AM, Sanjay Pujare <san...@datatorrent.com> > >> wrote: > >> > >> Please give some examples and/or use cases of this programmatic log4j > >>> appender. > >>> > >>> On Fri, Apr 7, 2017 at 8:40 PM, Sergey Golovko <ser...@datatorrent.com > > > >>> wrote: > >>> > >>> Hi All, > >>>> > >>>> I'd like to add supporting of a custom defined log4j appender that can > >>>> be > >>>> added to Apex Application Master and Containers and be configurable > >>>> programmatically. > >>>> > >>>> Sometimes it is not trivial to control log4j configuration via log4j > >>>> properties. And I think the having of the approach to add a log4j > >>>> > >>> appender > >>> > >>>> programmatically will allow the customers and developers to plugin > their > >>>> own custom defined log4j appenders and be much flexible for streaming > >>>> and > >>>> collection of Apex log events. > >>>> > >>>> I assume to provide generic approach for definition of the > programmatic > >>>> log4j appender and to pass all configuration parameters including a > name > >>>> > >>> of > >>> > >>>> the Java class with implementation of the log4j appender via system > >>>> > >>> and/or > >>> > >>>> command line properties. > >>>> > >>>> Thanks, > >>>> Sergey > >>>> > >>>> > > > -- _______________________________________________________ Munagala V. Ramanath Software Engineer E: r...@datatorrent.com | M: (408) 331-5034 | Twitter: @UnknownRam www.datatorrent.com | apex.apache.org