[ 
https://issues.apache.org/jira/browse/LOG4J2-155?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13583026#comment-13583026
 ] 

Scott Deboy commented on LOG4J2-155:
------------------------------------

Here is an example of programmatic creation of a FileAppender which supports 
advertising of its configuration via Multicast DNS:

FileAppender fileAppender = 
FileAppender.createAppender("/Users/admin/log4j2log.txt", "true", "false", 
"file appender name",
                "false", "false", "false", 
PatternLayout.createLayout("%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - 
%m%n",
                null, null, null), null, "true", 
"file:/Users/admin/log4j2log.txt");

Notice the last two parameters...advertiseViaMulticastDNS and URI (which could 
just be http or https or something supported by Commons VFS).  

The two additional parameters make it possible for Chainsaw to discover 
everything it needs to know about the log file configuration, and display that 
appender configuration as "file appender name" in the Chainsaw ZeroConf window. 
 Double-clicking on the entry in Chainsaw automatically creates a receiver and 
starts tailing the log file.


                
> add getFormat to Layout
> -----------------------
>
>                 Key: LOG4J2-155
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-155
>             Project: Log4j 2
>          Issue Type: Improvement
>            Reporter: Scott Deboy
>         Attachments: log4j2-155-feb21-rev1.patch, 
> log4j2-155-jan22-rev1.patch, log4j2-155-jan23-rev1.patch
>
>
> I was looking at an old rev - getContentType is now exposed - thanks!
> Now if we could add a 'getFormat':
> It would be useful to expose information about a Layout's format.
> If the content type is text/plain, exposing the layout format as a conversion 
> pattern would work fine.
> If the content type is text/html or text/xml we could expose something else 
> (or null).
> My primary interest is adding the ability to 'discover' the file-based 
> logging configurations in order to support them via Chainsaw and multicast 
> DNS.
> If all Layouts supporting text/plain content types exposed their format as a 
> conversion pattern, and the file-based appenders (optionally) provided the 
> ability to advertise their configuration, the files could be remotely tailed 
> without the far endpoint even knowing anything about the file configuration.
> For an example, see how multicast appenders are exposed via 
> zeroconf/multicast dns in log4j 1.x in activateOptions - something very 
> similar could be done with contenttype and format properties in a 
> fileappender with a layout.
>     if (advertiseViaMulticastDNS) {
>         Map properties = new HashMap();
>         properties.put("multicastAddress", remoteHost);
>         zeroConf = new ZeroConfSupport(ZONE, port, getName(), properties);
>         zeroConf.advertise();
>     }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to