Quoting sohan <[EMAIL PROTECTED]>: > > 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. >
What do you mean "'pcs' is the log file name"? That would be the logger name, not the file name. Also, I didn't mean to direct you to use commons-logging. If you were using log4j directly, please keep using it. In fact, log wrappers like SLF4J and commons-logging have issues when it comes to repository selectors. Search the SLF4J user list for details on this. There's also a bug in the SLF4J database about this. I believe the same applies to commons-logging. Log4j cannot guarantee proper logging separation when you use a wrapper. > Any idea as to why the non static logger is not working! > I would guess it's because you are using commons-logging. Use Log4j directly, just as you were previously. I only sent you the commons-logging link because they had a good synopsis of the static logger issue, not to convince you to move to commons-logging. Jake > 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] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]