RE: environment variables for hostname and context name

2009-09-19 Thread Caldarale, Charles R
 From: Chris Cheshire [mailto:cheshira...@gmail.com]
 Subject: Re: environment variables for hostname and context name
 
 The tomcat directory is available through the environment
 somehow, and is accessed as ${catalina.home}.

The ${catalina.home} reference is to a system property, not an environment 
variable - these are two entirely separate and distinct mechanisms.  

 What else is exposed this way?

Use System.getProperties() in a servlet to find out.  Lambda Probe has a screen 
that displays all of them.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY 
MATERIAL and is thus for use only by the intended recipient. If you received 
this in error, please contact the sender and delete the e-mail and its 
attachments from all computers.


-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



environment variables for hostname and context name

2009-09-18 Thread Chris Cheshire
I'm reconfiguring the logging for my tomcat installation (6.0.20) to
use logback (instead of log4j) for the server logging so I can split
out error messages on a per host basis. I see that catalina.home is
exposed as an environment var and usable in the logging configuration
file - what about the hostname and context name/path?

I would like to set up a config file such that I don't have to edit it
every time I add a new sandbox for a developer (host). I want the
errors split out per host instead of one big file, because it makes it
possible to tell which sandbox had a problem with a JSP page for
instance.

I have it working if I hardcode a new appender per host going to a
separate file - something like :

  root level=INFO
appender-ref ref=tomcat /
  /root

  logger 
name=org.apache.catalina.core.ContainerBase.[Catalina].[a.domain.com]
  level=INFO
  additivity=false
appender-ref ref=tomcat_www /
  /logger

and then two appenders, one for base logging from the tomcat
container, and then one for the host a.domain.com.

  appender name=tomcat_www
class=ch.qos.logback.core.rolling.RollingFileAppender
File${catalina.home}/logs/tomcat-www.log/File
RollingPolicy class=ch.qos.logback.core.rolling.TimeBasedRollingPolicy
  
FileNamePattern${catalina.home}/logs/tomcat-www.%d{-MM-dd}.log.gz/FileNamePattern
/RollingPolicy

layout class=ch.qos.logback.classic.PatternLayout
  Pattern%-25(%date{HH:mm:ss.SSS} [%thread])
%-5level%n%logger%n%msg%n/Pattern
/layout
  /appender


Now when I log an error I see something like :

17:04:01.890 [http-8080-1] ERROR
org.apache.catalina.core.ContainerBase.[Catalina].[a.domain.com].[/foo].[default]
Servlet.service() for servlet default threw exception
org.apache.jasper.JasperException: /WEB-INF/jsp/login.jsp(17,2)
Unterminated lt;core:if tag
at 
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
[jasper.jar:na]

[blah blah blah]

a.domain.com is the host where the web app is deployed. foo is the
context path under which the app is deployed. So if it was able to log
this information, it must be accessible somewhere, right? If I can get
access to the hostname and context name I can specify a dynamic file
name using these variables, and then only have one appender defined no
matter how many new hosts I deploy.


Chris

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



RE: environment variables for hostname and context name

2009-09-18 Thread Martin Gainty

org.apache.jasper.JasperException: /WEB-INF/jsp/login.jsp(17,2)

Unterminated lt;core:if tag

at 
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)

[jasper.jar:na]


this says that login.jsp at line 17 column2 has an unterminated if tag
here is a complete example that uses if component from Struts core e.g.
s:if test=#groupStatus.odd == true odd/s:if

!-- assuming you have this taglib declaration --
%@ taglib prefix=s uri=/struts-tags%

html
head
titletest For Bharaat/title
meta name=GENERATOR content=Microsoft FrontPage 3.0
/head
body
table
  tr class=trheadermain align=center bgcolor=#99 height=17
td colspan=4 align=center height=17 width=100%/td
  /tr
  tr bgcolor=#99 height=17
td class=trheadermain colspan=2 align=center height=17 
width=33%bNAME/b/td
td class=trheadermain width=33%bPrice/b/td
td class=trheadermain width=33%bOriginal Value/b/td
  /tr
  tr
td!-- construct an iterator which will iterate thru a Entries list 
supplied by simple.GetEntryAction -- webwork:iterator 
value=simple.GetEntryAction status=groupStatus /td
  /tr   
s:iterator value=groupDao.groups status=groupStatus
 tr class=s:if test=#groupStatus.odd == true 
odd/s:ifs:elseeven/s:else
 /tr
 /s:iterator
  /tr
/table
/body
/html

Martin Gainty 
__ 
Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité
 
Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene Empfaenger 
sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte Weiterleitung 
oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht dient lediglich dem 
Austausch von Informationen und entfaltet keine rechtliche Bindungswirkung. 
Aufgrund der leichten Manipulierbarkeit von E-Mails koennen wir keine Haftung 
fuer den Inhalt uebernehmen.
Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le 
destinataire prévu, nous te demandons avec bonté que pour satisfaire informez 
l'expéditeur. N'importe quelle diffusion non autorisée ou la copie de ceci est 
interdite. Ce message sert à l'information seulement et n'aura pas n'importe 
quel effet légalement obligatoire. Étant donné que les email peuvent facilement 
être sujets à la manipulation, nous ne pouvons accepter aucune responsabilité 
pour le contenu fourni.




 Date: Fri, 18 Sep 2009 17:18:08 -0700
 Subject: environment variables for hostname and context name
 From: cheshira...@gmail.com
 To: users@tomcat.apache.org
 
 I'm reconfiguring the logging for my tomcat installation (6.0.20) to
 use logback (instead of log4j) for the server logging so I can split
 out error messages on a per host basis. I see that catalina.home is
 exposed as an environment var and usable in the logging configuration
 file - what about the hostname and context name/path?
 
 I would like to set up a config file such that I don't have to edit it
 every time I add a new sandbox for a developer (host). I want the
 errors split out per host instead of one big file, because it makes it
 possible to tell which sandbox had a problem with a JSP page for
 instance.
 
 I have it working if I hardcode a new appender per host going to a
 separate file - something like :
 
   root level=INFO
 appender-ref ref=tomcat /
   /root
 
   logger 
 name=org.apache.catalina.core.ContainerBase.[Catalina].[a.domain.com]
   level=INFO
   additivity=false
 appender-ref ref=tomcat_www /
   /logger
 
 and then two appenders, one for base logging from the tomcat
 container, and then one for the host a.domain.com.
 
   appender name=tomcat_www
 class=ch.qos.logback.core.rolling.RollingFileAppender
 File${catalina.home}/logs/tomcat-www.log/File
 RollingPolicy class=ch.qos.logback.core.rolling.TimeBasedRollingPolicy
   
 FileNamePattern${catalina.home}/logs/tomcat-www.%d{-MM-dd}.log.gz/FileNamePattern
 /RollingPolicy
 
 layout class=ch.qos.logback.classic.PatternLayout
   Pattern%-25(%date{HH:mm:ss.SSS} [%thread])
 %-5level%n%logger%n%msg%n/Pattern
 /layout
   /appender
 
 
 Now when I log an error I see something like :
 
 17:04:01.890 [http-8080-1] ERROR
 org.apache.catalina.core.ContainerBase.[Catalina].[a.domain.com].[/foo].[default]
 Servlet.service() for servlet default threw exception
 org.apache.jasper.JasperException: /WEB-INF/jsp/login.jsp(17,2)
 Unterminated lt;core:if tag
 at 
 org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
 [jasper.jar:na]
 
 [blah blah blah]
 
 a.domain.com is the host where the web app is deployed. foo is the
 context path under which the app is deployed. So if it was able to log
 this information, it must be accessible somewhere, right? If I can get
 access to the hostname and context name I can specify a dynamic file
 name using these variables, and then only have one appender defined no
 matter how many new hosts I deploy.
 
 
 Chris

Re: environment variables for hostname and context name

2009-09-18 Thread Chris Cheshire
I forced that error specifically for this example. That's not the
issue. That is an example of what I am trying to log, and it
illustrates that the information I need is available at the logging
level.


On Fri, Sep 18, 2009 at 7:01 PM, Martin Gainty mgai...@hotmail.com wrote:

 org.apache.jasper.JasperException: /WEB-INF/jsp/login.jsp(17,2)

 Unterminated core:if tag

 at 
 org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)

 [jasper.jar:na]


 this says that login.jsp at line 17 column2 has an unterminated if tag
 here is a complete example that uses if component from Struts core e.g.
 s:if test=#groupStatus.odd == true odd/s:if


-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: environment variables for hostname and context name

2009-09-18 Thread Rainer Jung
On 19.09.2009 02:18, Chris Cheshire wrote:
 I'm reconfiguring the logging for my tomcat installation (6.0.20) to
 use logback (instead of log4j) for the server logging so I can split
 out error messages on a per host basis. I see that catalina.home is
 exposed as an environment var and usable in the logging configuration
 file - what about the hostname and context name/path?
 
 I would like to set up a config file such that I don't have to edit it
 every time I add a new sandbox for a developer (host). I want the
 errors split out per host instead of one big file, because it makes it
 possible to tell which sandbox had a problem with a JSP page for
 instance.
 
 I have it working if I hardcode a new appender per host going to a
 separate file - something like :
 
   root level=INFO
 appender-ref ref=tomcat /
   /root
 
   logger 
 name=org.apache.catalina.core.ContainerBase.[Catalina].[a.domain.com]
   level=INFO
   additivity=false
 appender-ref ref=tomcat_www /
   /logger
 
 and then two appenders, one for base logging from the tomcat
 container, and then one for the host a.domain.com.
 
   appender name=tomcat_www
 class=ch.qos.logback.core.rolling.RollingFileAppender
 File${catalina.home}/logs/tomcat-www.log/File
 RollingPolicy class=ch.qos.logback.core.rolling.TimeBasedRollingPolicy
   
 FileNamePattern${catalina.home}/logs/tomcat-www.%d{-MM-dd}.log.gz/FileNamePattern
 /RollingPolicy
 
 layout class=ch.qos.logback.classic.PatternLayout
   Pattern%-25(%date{HH:mm:ss.SSS} [%thread])
 %-5level%n%logger%n%msg%n/Pattern
 /layout
   /appender
 
 
 Now when I log an error I see something like :
 
 17:04:01.890 [http-8080-1] ERROR
 org.apache.catalina.core.ContainerBase.[Catalina].[a.domain.com].[/foo].[default]
 Servlet.service() for servlet default threw exception
 org.apache.jasper.JasperException: /WEB-INF/jsp/login.jsp(17,2)
 Unterminated lt;core:if tag
 at 
 org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
 [jasper.jar:na]
 
 [blah blah blah]
 
 a.domain.com is the host where the web app is deployed. foo is the
 context path under which the app is deployed. So if it was able to log
 this information, it must be accessible somewhere, right? If I can get
 access to the hostname and context name I can specify a dynamic file
 name using these variables, and then only have one appender defined no
 matter how many new hosts I deploy.

In configuration files Log4J only support two kinds of variables:

- system properties
- variables defined previously inside Log4J (typically in the same
config file)

Both ways do not have the ability to react on context information during
logging.

Regards,

Rainer

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: environment variables for hostname and context name

2009-09-18 Thread Chris Cheshire
Right. The tomcat directory is available through the environment
somehow, and is accessed as ${catalina.home}. From here I can get to
the tomcat logs directory. What else is exposed this way? I am hoping
that if the host and context are available in the logging message
itself, then maybe they are/can be exposed. Those values are generated
internally by tomcat when it dumps that stack trace, they weren't part
of the original logging message.

On Fri, Sep 18, 2009 at 8:30 PM, Rainer Jung rainer.j...@kippdata.de wrote:
 On 19.09.2009 02:18, Chris Cheshire wrote:
 I'm reconfiguring the logging for my tomcat installation (6.0.20) to
 use logback (instead of log4j) for the server logging so I can split
 out error messages on a per host basis. I see that catalina.home is
 exposed as an environment var and usable in the logging configuration
 file - what about the hostname and context name/path?

 I would like to set up a config file such that I don't have to edit it
 every time I add a new sandbox for a developer (host). I want the
 errors split out per host instead of one big file, because it makes it
 possible to tell which sandbox had a problem with a JSP page for
 instance.

 I have it working if I hardcode a new appender per host going to a
 separate file - something like :

   root level=INFO
     appender-ref ref=tomcat /
   /root

   logger 
 name=org.apache.catalina.core.ContainerBase.[Catalina].[a.domain.com]
           level=INFO
           additivity=false
     appender-ref ref=tomcat_www /
   /logger

 and then two appenders, one for base logging from the tomcat
 container, and then one for the host a.domain.com.

   appender name=tomcat_www
 class=ch.qos.logback.core.rolling.RollingFileAppender
     File${catalina.home}/logs/tomcat-www.log/File
     RollingPolicy 
 class=ch.qos.logback.core.rolling.TimeBasedRollingPolicy
       
 FileNamePattern${catalina.home}/logs/tomcat-www.%d{-MM-dd}.log.gz/FileNamePattern
     /RollingPolicy

     layout class=ch.qos.logback.classic.PatternLayout
       Pattern%-25(%date{HH:mm:ss.SSS} [%thread])
 %-5level%n%logger%n%msg%n/Pattern
     /layout
   /appender


 Now when I log an error I see something like :

 17:04:01.890 [http-8080-1] ERROR
 org.apache.catalina.core.ContainerBase.[Catalina].[a.domain.com].[/foo].[default]
 Servlet.service() for servlet default threw exception
 org.apache.jasper.JasperException: /WEB-INF/jsp/login.jsp(17,2)
 Unterminated lt;core:if tag
         at 
 org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
 [jasper.jar:na]

 [blah blah blah]

 a.domain.com is the host where the web app is deployed. foo is the
 context path under which the app is deployed. So if it was able to log
 this information, it must be accessible somewhere, right? If I can get
 access to the hostname and context name I can specify a dynamic file
 name using these variables, and then only have one appender defined no
 matter how many new hosts I deploy.

 In configuration files Log4J only support two kinds of variables:

 - system properties
 - variables defined previously inside Log4J (typically in the same
 config file)

 Both ways do not have the ability to react on context information during
 logging.

 Regards,

 Rainer

 -
 To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
 For additional commands, e-mail: users-h...@tomcat.apache.org



-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org