You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-user@logging.apache.org by Tuan Jean Tee <tu...@minterellison.com> on 2003/11/10 22:59:29 UTC

Re: How do I do to change the properties fileforlog4jintoanother directory?

Thanks Jake.

>>> hoju@visi.com 08/Nov/2003 01:21:31 am >>>

getting resources from WEB-INF is specific to a servlet application. 
If 
you need to get the config file from both places, then put your config
file 
back into WEB-INF/classes/config.  At that point, the code below will
work 
and you can change your path in the servlet example to this...

context.getResource("/WEB-INF/classes/config/log4j.properties");

Jake

At 04:07 PM 11/7/2003 +1100, you wrote:
>Jake,
>
>Using your suggestion, I have able to make my Log4j servlet reading
the
>correct properties in /WEB-INF/config dir.
>
>I know this is a bit out of track, but in another java bean file, I
am
>using InputStream. Is it a way to change to use the URL just like the
>Log4j method which you have pointed out? as I am not able to get it
read
>from /WEB-INF. Thank you.
>
>
>public class ConnectionManager implements HttpSessionBindingListener
>{
>   private Connection connection;
>   private Statement statement;
>
>   private String driver = "";
>   private String dbURL = "";
>   private String login = "";
>   private String password = "";
>
>  static public void main(String[] args)
>   {
>       ConnectionManager cm = new ConnectionManager();
>   } // main
>
>  public ConnectionManager()
>   {
>
>        Properties Prop = new Properties();
>        try {
>
>           InputStream configStream =
>getClass().getResourceAsStream("/config/database.properties");
>           Prop.load(configStream);
>           configStream.close();
>
>        } catch(IOException e) { System.out.println("Error: Cannot
laod
>configuration file ");}
>
>        driver =Prop.getProperty("driver");
>        dbURL = Prop.getProperty("dbURL");
>        login = Prop.getProperty("login");
>        password = Prop.getProperty("password");
>
>}
>
>
> >>> hoju@visi.com 07/Nov/2003 12:19:45 pm >>>
>
>It would help if you actually obtained your servlet context.  Right
>now, it
>is null.
>
>ServletContext context = this.getServletContext()
>
>Jake
>
>At 10:47 AM 11/7/2003 +1100, you wrote:
> >Jake,
> >
> >Thank you for your time. I have made the changes to the code as you
> >have suggested. It compiled without problem. However, it does not
>seems
> >to initiate the Log4j Tag Library. Have I missed out anything?
> >
> >TJ
> >
> >------------------------------------------------------------
> >package com.log;
> >
> >import org.apache.log4j.*;
> >import java.net.*;
> >import javax.servlet.*;
> >import javax.servlet.http.HttpServlet;
> >import javax.servlet.http.HttpServletRequest;
> >import javax.servlet.http.HttpServletResponse;
> >
> >public class Log4jInit extends HttpServlet {
> >
> >     public void init() {
> >
> >        try {
> >
> >    ServletContext context = null;
> >       URL url =
> >context.getResource("/WEB-INF/config/log4j.properties");
> >
> >       BasicConfigurator.configure();
> >       BasicConfigurator.resetConfiguration();
> >       PropertyConfigurator.configure(url);
> >
> >       } catch (MalformedURLException e) { e.printStackTrace();}
> >
> >      Logger logger = Logger.getLogger(getClass());
> >      logger.info("Logging system initialised successfully");
> >
> >  }
> >
> >
> >public void doGet(HttpServletRequest req, HttpServletResponse res)
{
>}
> >
> >}
> >
> >
> > >>> hoju@visi.com 07/Nov/2003 10:21:59 am >>>
> >
> >You need to look at my code closer.  "context" is a ServletContext.
> >You
> >can use it to access stuff anywhere in the webapp.
> >
> >URL url = context.getResource("/WEB-INF/config/log4j.properties");
> >PropertyConfigurator.configure(url);
> >
> >And, of course, you can also use the InputStream way if you want,
but
> >the
> >URL way is a bit simpler.
> >
> >One thing to note.  In my original code, I had forgotten to prefix
> >WEB-INF
> >with a "/".  That is fixed in the code above.
> >
> >Jake
> >
> >At 09:59 AM 11/7/2003 +1100, you wrote:
> > >Jake,
> > >
> > >Putting the properties file under /web-inf/config is what I
really
> > >wanted to achieve, but I am not be able to make it work. I uses
the
> > >following to initialised the log4j package.
> > >
> > >
> > >
> > >package com.log;
> > >
> > >import org.apache.log4j.*;
> > >import javax.servlet.http.HttpServlet;
> > >import javax.servlet.http.HttpServletRequest;
> > >import javax.servlet.http.HttpServletResponse;
> > >
> > >
> > >public class Log4jInit extends HttpServlet {
> > >
> > >
> > >     public void init() {
> > >
> > >   String servletContainer =
getServletContext().getRealPath("/");
> > >
> > >      // The exact path to the config file is in servlet mapping
> > >      String file = getInitParameter("log4j");
> > >      Logger logger = Logger.getLogger(getClass());
> > >
> > >      // if the log4j-init is not set, then no point in trying
> > >      if (file != null) {
> > >
> > >      BasicConfigurator.configure();
> > >      BasicConfigurator.resetConfiguration();
> > >   PropertyConfigurator.configure(servletContainer+file);
> > >
> > >      // Sent into to system.log
> > >      logger.info("Logging system initialised successfully");
> > >
> > >      }
> > >
> > >
> > >     }
> > >
> > >     public void doGet(HttpServletRequest req,
HttpServletResponse
> >res)
> > >{
> > >     }
> > >
> > >}
> > >
> > >I uses the following for my database properties which I have no
>luck
> >in
> > >getting it to read /web-inf/config too:
> > >
> > >Properties Prop = new Properties();
> > >        try {
> > >
> > >           InputStream configStream =
> > >getClass().getResourceAsStream("/config/database.properties");
> > >        Prop.load(configStream);
> > >           configStream.close();
> > >
> > >        } catch(IOException e) {
> > >
> > >       System.out.println("Error: Cannot laod configuration file
>");
> > >          }
> > >
> > >Do you have a sample code that works? Thank you.
> > >
> > >
> > >TJ
> > >
> > >
> > >
> > > >>> hoju@visi.com 06/Nov/2003 04:33:59 pm >>>
> > >At 11:29 AM 11/5/2003 +1100, you wrote:
> > > >I am using the Log Tag Library 1.0 from Jakarta Project.
> > > >
> > > >In the Installation document, it suggest that in order to
> >initialize
> > > >Log4j automatically, the log4j.properties file will have to be
> >placed
> > >in
> > > >/WEB-INF/classes.
> > > >
> > > >How could I put the log4j.properties file in
> >/WEB-INF/classes/config
> > > >directory? What do I have to do?
> > > >
> > > >Thank you.
> > >
> > >If you are going to create a "config" dir, why not do it directly
> >under
> > >
> > >WEB-INF rather than where classes are put?  You can load up an
>input
> > >stream
> > >using
>context.getResourceAsStream("WEB-INF/config/log4j.properties")
> > >and
> > >feed that info a Properties object, then send that into
> > >PropertyConfigurator.configure(Properties) or load up a URL using
> > >context.getResource("WEB-INF/config/log4j.properties") and send
>that
> > >info
> > >PropertyConfigurator.configure(URL).
> > >
> > >Of course you can still do this even if you leave the "config"
> > >directory
> > >under "WEB-INF/classes" and use the same technique above. 
Whatever
> >you
> > >
> > >feel comfortable with.  I just like not cluttering my classpath
>with
> > >non-classes.
> > >
> > >Jake
> > >
> > >
> >
>
>---------------------------------------------------------------------
> > >To unsubscribe, e-mail: log4j-user-unsubscribe@jakarta.apache.org

> > >For additional commands, e-mail:
log4j-user-help@jakarta.apache.org 
>
> > >
> > >
> > >
> > >
> > >IMPORTANT -
> > >
> > >This email and any attachments are confidential and may be
>privileged
> >in
> > >which case neither is intended to be waived. If you have received
>this
> >
> > >message in error, please notify us and remove it from your
system.
>It
> >is
> > >your responsibility to check any attachments for viruses and
>defects
> > >before opening or sending them on. Where applicable, liability is
> >limited
> > >by the Solicitors Scheme approved under the Professional
Standards
>Act
> >
> > >1994 (NSW). Minter Ellison collects personal information to
provide
> >and
> > >market our services. For more information about use, disclosure
and
> > >access, see our privacy policy at www.minterellison.com.
> >
> >
>
>---------------------------------------------------------------------
> >To unsubscribe, e-mail: log4j-user-unsubscribe@jakarta.apache.org 
> >For additional commands, e-mail: log4j-user-help@jakarta.apache.org

> >
> >
> >
> >
> >IMPORTANT -
> >
> >This email and any attachments are confidential and may be
privileged
>in
> >which case neither is intended to be waived. If you have received
this
>
> >message in error, please notify us and remove it from your system.
It
>is
> >your responsibility to check any attachments for viruses and
defects
> >before opening or sending them on. Where applicable, liability is
>limited
> >by the Solicitors Scheme approved under the Professional Standards
Act
>
> >1994 (NSW). Minter Ellison collects personal information to provide
>and
> >market our services. For more information about use, disclosure and
> >access, see our privacy policy at www.minterellison.com.
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: log4j-user-unsubscribe@jakarta.apache.org 
>For additional commands, e-mail: log4j-user-help@jakarta.apache.org 
>
>
>
>
>IMPORTANT -
>
>This email and any attachments are confidential and may be privileged
in 
>which case neither is intended to be waived. If you have received this

>message in error, please notify us and remove it from your system. It
is 
>your responsibility to check any attachments for viruses and defects 
>before opening or sending them on. Where applicable, liability is
limited 
>by the Solicitors Scheme approved under the Professional Standards Act

>1994 (NSW). Minter Ellison collects personal information to provide
and 
>market our services. For more information about use, disclosure and 
>access, see our privacy policy at www.minterellison.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@jakarta.apache.org 
For additional commands, e-mail: log4j-user-help@jakarta.apache.org 



IMPORTANT -

This email and any attachments are confidential and may be privileged in which case neither is intended to be waived. If you have received this message in error, please notify us and remove it from your system. It is your responsibility to check any attachments for viruses and defects before opening or sending them on. Where applicable, liability is limited by the Solicitors Scheme approved under the Professional Standards Act 1994 (NSW). Minter Ellison collects personal information to provide and market our services. For more information about use, disclosure and access, see our privacy policy at www.minterellison.com.