I changed to use Log4j.xml from Log4j.properties and also changed to
non-static loggers and with in the static methods followed the link
examples. Now the logging is taking place only for the loggers mentioned in
the static methods, Log log = LogFactory.getLog("pcs"); pcs is the log file
name.
Any idea as to why the non static logger is not working!
thanks,
Sohan
Jacob Kjome wrote:
>
>
> 1. Use non-static loggers (for Serializable classes, you'll need to
> mark these as transient)
> 2. Avoid Classloader-based repository selectors. Use JNDI-base
> selectors. There's already one written for Log4j-1.3alpha. Even if
> you don't care to use 1.3, you can use it to get an idea of how to
> write one for 1.2.
>
>
> See:
> http://www.qos.ch/logging/sc.jsp
> http://wiki.apache.org/jakarta-commons/Logging/StaticLog
>
>
> Jake
>
> At 03:09 PM 4/9/2007, you wrote:
> >
> >I followed some examples on the web to use RepositorySelector to
> implement
> >separate logging for 2 applications deployed on the same instance of
> >weblogic server. I have the Lgo4j.properties file under Web-Inf/ folder,
> >This is loaded through web.xml file through a startup servlet. Problem
> is
> >logging is taking place either in Log4j.log file or other applications
> log
> >file. In each java class file, I use..
> > private static Logger log = Logger.getLogger(LoginFilter.class);
> >and call the log .info ..accordingly. In log4j properties file, only
> >difference is file name for 2 applications.
> >
> >I am using weblogic 8.1.6 and Log4j 1.2.8 versions
> >
> >thanks for the help
> >Sohan
> >
> >web.xml entry...
> >
> > <servlet>
> > <servlet-name>log4j-init</servlet-name>
> > <servlet-class>pcs.common.util.Log4jInit</servlet-class>
> > <init-param>
> > <param-name>Log4JProperties</param-name>
> >
> <param-value>/WEB-INF/log4j-dev.properties</param-value>
> > </init-param>
> > <init-param>
> > <param-name>LogToFileOnly</param-name>
> > <param-value>false</param-value>
> > </init-param>
> > <load-on-startup>1</load-on-startup>
> > </servlet>
> >
> >public class Log4jInit extends HttpServlet {
> > static Logger log = Logger.getLogger(Log4jInit.class);
> > public void init() throws ServletException {
> >
> System.out.println("\n\n---------------Log4jInit---------------\n\n");
>
> > MyRepositorySelector.init(this.getServletConfig());
> > Logger log = Logger.getLogger(this.getClass());
> > log.info("Log message from Log4jInit servlet");
> > System.out.println("\n\n---------------Log4jInit:
> >Complete---------------\n\n");
> >
> > }
> >
> >}
> >
> >public class MyRepositorySelector implements RepositorySelector
> >{
> > private static boolean initialized = false;
> > private static Object guard = LogManager.getRootLogger();
> >
> > private static Map repositories = new HashMap();
> > private static LoggerRepository defaultRepository;
> >
> > public static synchronized void init(ServletConfig config)
> > throws ServletException {
> > if( !initialized ) // set the global RepositorySelector
> > {
> > defaultRepository = LogManager.getLoggerRepository();
> > RepositorySelector theSelector = new MyRepositorySelector();
> > LogManager.setRepositorySelector(theSelector, guard);
> > initialized = true;
> > }
> >
> > Hierarchy hierarchy = new Hierarchy(new
> RootCategory(Level.DEBUG));
> > loadLog4JConfig(config, hierarchy);
> > ClassLoader loader =
> Thread.currentThread().getContextClassLoader();
> > repositories.put(loader, hierarchy);
> > }
> >
> > public static synchronized void removeFromRepository() {
> >
> repositories.remove(Thread.currentThread().getContextClassLoader());
> > }
> >
> >
> > private static void loadLog4JConfig(ServletConfig config,
> > Hierarchy hierarchy)
> > throws ServletException {
> > try {
> >
> > String strLogProperties =
> >
> config.getInitParameter(GlobalDictionary.LOG_PROPERTIES);
> > System.out.println("strLogProperties: " +
> strLogProperties);
> > Properties logProperties = new Properties();
> > try {
> >
> >logProperties.load(config.getServletContext().getResourceAsStream(strL
> >ogProperties));
> > } catch (Exception e) {
> > System.out.println("ERROR: Loading log4j
> properties: " +
> >e.getMessage());
> > //e.printStackTrace();
> > }
> > PropertyConfigurator propConf = new
> PropertyConfigurator();
> > propConf.doConfigure(logProperties, hierarchy);
> > } catch (Exception e) {
> > throw new ServletException(e);
> > }
> > }
> >
> > private MyRepositorySelector() {
> > }
> >
> > public LoggerRepository getLoggerRepository() {
> > ClassLoader loader =
> Thread.currentThread().getContextClassLoader();
> > LoggerRepository repository =
> >(LoggerRepository)repositories.get(loader);
> >
> > if (repository == null) {
> > return defaultRepository;
> > } else {
> > return repository;
> > }
> > }
> >}
> >--
> >View this message in context:
> >http://www.nabble.com/separate-log-files-for-application%27s-on-weblog
> >ic-with-log4j-using-RepositorySelector-tf3549324.html#a9908677
> >Sent from the Log4j - Users mailing list archive at Nabble.com.
> >
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: [EMAIL PROTECTED]
> >For additional commands, e-mail: [EMAIL PROTECTED]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
--
View this message in context:
http://www.nabble.com/separate-log-files-for-application%27s-on-weblogic-with-log4j-using-RepositorySelector-tf3549324.html#a9926589
Sent from the Log4j - Users mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]