Hi jake,

Before I start using Log4j-1.3, I want to confirm if my Log4j.xml is valid
for my requirements
Below is the xml..I removed SYSTEM entry as I was getting log4j.dtd file not
found error during weblogic startup.
In this xml do I need to specify logger entry? Am I missing anything!

thanks,
Sohan

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration >

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/";
debug="false">

   <!-- A time/date based rolling appender -->
   <!-- Logs messages to ${jboss.server.home.dir}/log/test1.log -->
   <!-- <appender name="TEST"
class="org.jboss.logging.appender.DailyRollingFileAppender"> -->
   <appender name="TEST" class="org.apache.log4j.RollingFileAppender">
      <!-- <errorHandler
class="org.jboss.logging.util.OnlyOnceErrorHandler"/> -->
      <param name="File" value="pcs.log"/>
      <param name="Append" value="false"/>

      <!-- Rollover at midnight each day -->
       <!-- <param name="DatePattern" value="'.'yyyy-MM-dd"/> -->

      <layout class="org.apache.log4j.PatternLayout">
         <!-- The default pattern: Date Priority [Category] Message\n -->
         <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>

         <!-- The full pattern: Date MS Priority [Category] (Thread:NDC)
Message\n
         <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x)
%m%n"/>
          -->
      </layout>
   </appender>

   <!-- ======================= -->
   <!-- Setup the Root category -->
   <!-- ======================= -->

   <root>
      <appender-ref ref="TEST"/>
   </root>

</log4j:configuration>


Jacob Kjome wrote:
> 
> 
> Have you tried using the JNDI repository selector solution, such as 
> in Log4j-1.3?  To test this out quickly, you could just try using 
> Log4j-1.3 and its ContextJNDISelector class to perform the repository 
> selection.  I know it works.  I'm not sure why you are seeing odd 
> results with the classloader-based selector you wrote, but I haven't 
> gone over the code intensively either.  In any case, don't use a 
> classloader-based approach.  It will give you nothing but headaches, 
> in my experience.
> 
> Add the following to your server startup script...
> 
> -Dlog4j.repositorySelector=JNDI
> 
> 
> Add the following to your web.xml....
> 
>      <listener>
>          <!-- this feature may require building Log4j-1.3 from 
> source, as it may not be in the latest released alpha jar??? -->
>         
> <listener-class>org.apache.log4j.selector.servlet.ContextDetachingSCL</listener-class>
>      </listener>
> 
>      <env-entry>
>          <description>JNDI logging context for this app</description>
>          <env-entry-name>log4j/context-name</env-entry-name>
>          <env-entry-value>myapp</env-entry-value>
>          <env-entry-type>java.lang.String</env-entry-type>
>      </env-entry>
> 
>      <env-entry>
>          <description>URL for configuring log4j context</description>
>          <env-entry-name>log4j/configuration-resource</env-entry-name>
>          <env-entry-value>myapp-log4j.xml</env-entry-value>
>          <env-entry-type>java.lang.String</env-entry-type>
>      </env-entry>
> 
> 
> Jake
> 
> At 07:08 PM 4/10/2007, you wrote:
>  >
>  >"What do you mean "'pcs' is the log file name"?  That would be the
> logger
>  >name,
>  >not the file name."
>  >My mistake, I meant to say that it is both the logger name as well as I
>  >named the log file name same too after the application name.
>  > I tried with both LogFactory of commons-logging as well as direct use
> of
>  >Log4j. Behavior is the same
>  >I did notice one thing, Log information is being written normally from
> java
>  >classes that extend HttpServlet.
>  >Logging from other java class files is not working as intended. My
>  >application uses struts 1.2.9 too.
>  >
>  >thanks,
>  >Sohan
>  >
>  >
>  >Jacob Kjome wrote:
>  >>
>  >> 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-weblog
>  >ic-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]
>  >>
>  >>
>  >>
>  >
>  >--
>  >View this message in context:
>  >http://www.nabble.com/separate-log-files-for-application%27s-on-weblog
>  >ic-with-log4j-using-RepositorySelector-tf3549324.html#a9931051
>  >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#a9941069
Sent from the Log4j - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to