What might be easiest is to use separate log4j configurations for each web app, specifying unique names in each web app's log4j configuration file. See http://logging.apache.org/log4j/2.x/manual/logsep.html for more information.
http://logging.apache.org/log4j/2.x/manual/webapp.html mentions that the ServletContext's context name is used as the LoggerContext name, but the LoggerContext name isn't exposed anywhere that I can see as something you could use in the naming of your rolling file. You may be able to do this by implementing your own Lookup - see http://logging.apache.org/log4j/2.x/manual/extending.html Hope that helps. Scott On 10/30/13, Mahesh Dilhan <[email protected]> wrote: > Hi Scott > > thanks for the reply. > > Actually I wanted to know that how to get the *web-application-context-path > dynamically, without hard-code in the log4j2.xml.* > * > * > *Sorry for the inconvenience, if i did not make my self clear .* > * > * > " is there a way to output log file name as : > "*web-application-context-path > *-date.log" ? [configuration of log4j2,xml]" > > Yes I did append the *"date"* by looking at RollingAppender. > > Thanks > > > > On Thu, Oct 31, 2013 at 6:48 AM, Scott Deboy <[email protected]> wrote: > >> I'm not clear myself on when an async logger is useful - I am more >> familiar with the (previously existing) concept of async appenders. >> >> I think the documentation in this area needs to be enhanced to explain >> why you would use async loggers or async appenders, particularly for >> file IO. >> >> As for generating log files with dates, yes, you can specify your own >> date-related pattern with a RollingFileAppender. See the >> documentation on RollingFileAppender and examples here: >> http://logging.apache.org/log4j/2.x/manual/appenders.html >> >> Scott >> >> On 10/30/13, Mahesh Dilhan <[email protected]> wrote: >> > Hi Scott >> > >> > I already configured it , yes it works for fileAppeders. >> > I have seen the perftest of async logger. will there be performance hit >> > with fileAppender compared to async logger? I already noticed time >> > taken >> > for initialization process is varying for file and random access file. >> > is >> > it because of "distruptor"? >> > >> > is there a way to output log file name as : >> > "*web-application-context-path*-date.log" >> > ? [configuration of log4j2,xml] >> > >> > Thanks >> > >> > >> > >> > >> > On Thu, Oct 31, 2013 at 3:16 AM, Scott Deboy <[email protected]> >> wrote: >> > >> >> Mi Mahesh, >> >> >> >> If you'd like to use Chainsaw with log4j2, you need to use the latest >> >> Chainsaw developer snapshot, available here: >> >> http://people.apache.org/~sdeboy >> >> >> >> If you use a file appender in your log4j configuration, add the JmDns >> >> jar to your application classpath (http://jmdns.sourceforge.net), and >> >> update your log4j configuration as described in the documentation >> >> (including specifying a URI to your log file), Chainsaw should be able >> >> to parse and tail your log file. >> >> >> >> Feel free to ask additional questions here on the user list. >> >> >> >> Scott >> >> >> >> On 10/28/13, Mahesh Dilhan <[email protected]> wrote: >> >> > Thanks for the clarification Remko >> >> > >> >> > >> >> > On Tue, Oct 29, 2013 at 8:52 AM, Remko Popma <[email protected]> >> >> wrote: >> >> > >> >> >> Hi Mahesh, >> >> >> >> >> >> Thank you for re-posting your question to the user mailing list. >> >> >> >> >> >> The Status Logger is a special logger used by log4j internally. >> >> >> If you set it to "debug" or "trace" (by starting your config xml >> >> >> file >> >> >> with <Configuration >> >> >> status="debug">...), >> >> >> it will output things like which appenders and loggers were >> >> >> initialized, >> >> >> which log4j plugins were found, etc. >> >> >> Any configuration problems will show up in the status log. >> >> >> The status log output will appear on the console (System.out). >> >> >> >> >> >> In JConsole, this internal logging is what you see in the >> StatusLogger >> >> >> tab. >> >> >> >> >> >> I'm guessing from your question that you would like to see the log >> >> >> statements produced by your application in the JConsole viewer. >> >> >> Unfortunately, JMX currently does not provide a way to show the >> >> >> content >> >> >> of >> >> >> application log files. >> >> >> >> >> >> If you are looking for a tool that allows you to view the log file >> >> >> from >> >> a >> >> >> remote machine you may want to take a look at Chainsaw. >> >> >> http://logging.apache.org/chainsaw/ >> >> >> >> >> >> Scott Deboy has been doing work to make Chainsaw's zeroconf feature >> >> >> work >> >> >> well with log4j2. >> >> >> I am not that familiar with Chainsaw, but perhaps this >> >> >> documentation >> >> >> can >> >> >> get you started: >> >> >> >> >> >> >> >> >> http://logging.apache.org/log4j/2.x/manual/configuration.html#AdvertisingAppenderConfigurations >> >> >> >> >> >> Best regards, >> >> >> Remko >> >> >> >> >> >> >> >> >> >> >> >> On Tue, Oct 29, 2013 at 9:58 AM, Mahesh Dilhan < >> >> [email protected] >> >> >> >wrote: >> >> >> >> >> >> > Hi All, >> >> >> > >> >> >> > i'm interested in learning on JMX monitoring in log4j2. >> >> >> > >> >> >> > As explained I was able to get the log4j2 'tab' > statusLogger >> child >> >> >> > tab >> >> >> in >> >> >> > JConsole with the initial logging statements. >> >> >> > >> >> >> > Note:version : 2.0.9beta >> >> >> > >> >> >> > log4j2.xml >> >> >> > >> >> >> > <?xml version="1.0" encoding="UTF-8"?> >> >> >> > >> >> >> > <!-- No need to set system property "Log4jContextSelector" to any >> >> value >> >> >> > when using <asyncLogger> or <asyncRoot>. --> >> >> >> > >> >> >> > <Configuration status="debug"> >> >> >> > <Appenders> >> >> >> > <!-- Async Loggers will auto-flush in batches, so switch off >> >> >> > immediateFlush. --> >> >> >> > <RandomAccessFile name="RandomAccessFile" >> >> >> > fileName="asyncWithLocation.log" >> >> >> > immediateFlush="false" append="false"> >> >> >> > <PatternLayout> >> >> >> > <Pattern>%d %p %class{1.} [%t] %location %m >> >> >> > %ex%n</Pattern> >> >> >> > </PatternLayout> >> >> >> > </RandomAccessFile> >> >> >> > >> >> >> > </Appenders> >> >> >> > <Loggers > >> >> >> > <!-- pattern layout actually uses location, so we need to >> >> >> > include >> >> >> > it >> >> >> > --> >> >> >> > <AsyncLogger name="notificationLogger" level="trace" >> >> >> > includeLocation="true"> >> >> >> > <AppenderRef ref="RandomAccessFile"/> >> >> >> > </AsyncLogger> >> >> >> > <Root level="debug" includeLocation="true"> >> >> >> > <AppenderRef ref="notificationLogger"/> >> >> >> > </Root> >> >> >> > </Loggers> >> >> >> > </Configuration> >> >> >> > >> >> >> > <!-- notificationLogger --> >> >> >> > private static Logger logger = >> >> >> LogManager.getLogger("notificationLogger"); >> >> >> > >> >> >> > >> >> >> > When web Application(java/servlet/spring) runs I can see the >> >> >> > file[asyncWithLocation.log] get appended with the logging >> >> >> > statements, >> >> >> > I like to see Jconsole get appended too, But It did not. >> >> >> > >> >> >> > >> >> >> > I wonder, what configuration I should use to enable jmx logging, >> >> >> > so >> >> >> > that >> >> >> I >> >> >> > can see them in JConsole? >> >> >> > >> >> >> > is there any documentation other than this >> >> >> > http://logging.apache.org/log4j/2.x/manual/jmx.html, >> >> >> > >> >> >> > it would be great if above documentation is updated with a sample >> of >> >> >> > log4j2.xml configuration. >> >> >> > >> >> >> > Thanks >> >> >> > >> >> >> > Mahesh >> >> >> > >> >> >> >> >> > >> >> > >> >> > >> >> > Mahesh >> >> > >> >> >> >> --------------------------------------------------------------------- >> >> To unsubscribe, e-mail: [email protected] >> >> For additional commands, e-mail: [email protected] >> >> >> >> >> > >> > >> > -- >> > Mahesh >> > >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> > > > -- > Mahesh > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
