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]