log4j on WebSphere Application Server

2011-04-01 Thread nulll

Hi,

I configured my logging with log4j.properties file using a FileAppender.
When I do my local development, I use Tomcat under Windows.
When deploying on managed-environments (sys, acc, prod), I use WebSphere
under Linux.

Since my various environment use dedicated file structure, I'd like to know
how I can set a log file location which is dynamic.
I would actually want to have my log4j logging written into a file in the
same folder as SystemOut.log.
I defined a LOG_ROOT WebSphere variable but I don't think it's accessible to
LOG4J.

I made some research on the Internet but still didn't find any way to do
that.

Any help is appreciated.

Thanks!
-- 
View this message in context: 
http://old.nabble.com/log4j-on-WebSphere-Application-Server-tp31298324p31298324.html
Sent from the Log4j - Users mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org



Re: log4j on WebSphere Application Server

2011-04-01 Thread Jacob Kjome
You can reference Java system properties using the syntaxt ${somePropertyName},
e.g.,

log4j.appender.A1.File=${log.dir}/stdout.log

You can set Java system properties on the command line using...

java -Dlog.dir=/path/to/log/directory 



Jake


On 4/1/2011 1:10 PM, nulll wrote:
 
 Hi,
 
 I configured my logging with log4j.properties file using a FileAppender.
 When I do my local development, I use Tomcat under Windows.
 When deploying on managed-environments (sys, acc, prod), I use WebSphere
 under Linux.
 
 Since my various environment use dedicated file structure, I'd like to know
 how I can set a log file location which is dynamic.
 I would actually want to have my log4j logging written into a file in the
 same folder as SystemOut.log.
 I defined a LOG_ROOT WebSphere variable but I don't think it's accessible to
 LOG4J.
 
 I made some research on the Internet but still didn't find any way to do
 that.
 
 Any help is appreciated.
 
 Thanks!

-
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org



Re: Why There isn't a Log File?

2011-04-01 Thread Jacob Kjome

You can use an XML config file just fine under Tomcat (with caveats... see 
below).
 I see two issues with your current XML config, though

1.  The doctype should be...

!DOCTYPE log4j:configuration SYSTEM log4j.dtd

2.  The path in...

param name=File value=c:\myproj\myapp\logs\mylog.log /

...should be either...

param name=File value=c:\\myproj\\myapp\\logs\\mylog.log /

...or...

param name=File value=c:/myproj/myapp/logs/mylog.log /


I mentioned a caveat above about using XML config files in Tomcat.  By that, I
mean using it specifically for Tomcat logging, not just general application
logging.  You can, unless you choose to reference Tomcat loggers named using
square brackets, as they are disallowed by the DTD.  For instance, to reference
Tomcat's localhost logger, you'd use...

org.apache.catalina.core.ContainerBase.[Catalina].[localhost]


Using XML, it would be...

logger name=org.apache.catalina.core.ContainerBase.[Catalina].[localhost]
additivity=false
level value=INFO/
appender-ref ref=LOCALHOST/
/logger


But the name doesn't attribute doesn't allow square brackets and the config 
file
fails DTD validation because the name attribute is defined as type ID.  That
said, I think there might be a workaround.  If you use the deprecated category
rather than logger it might work because, for the former, the name attribute
is of type CDATA rather than ID.  So, all you'd have to do is use...

category 
name=org.apache.catalina.core.ContainerBase.[Catalina].[localhost]
additivity=false
level value=INFO/
appender-ref ref=LOCALHOST/
/category


Try that and see if it works.


Jake


On 3/30/2011 11:15 AM, Cindy Wong wrote:
 To answer my own question, according to Tomcat document, the problem is
 with TC. I need to use the property configuration file format instead.
 
 
 I have used log4j before with the property file configuration. For this
 new project, I have the XML configuration. The console output seems to be
 fine. Any changes on log level and layout will reflect on log messages on
 the console right away.

 I, however, can't get any log file for some reasons. To my understanding,
 to use a log file, I need to use the
 log4j-user-subscr...@logging.apache.org class and what is the name is
 important.

 The followings are the xml configuration and the dtd. Can someone tell me
 what is wrong?

 ?xml version=1.0 encoding=UTF-8?
 !-- !DOCTYPE log4j:configuration PUBLIC -//LOGGER log4j.dtd --
 !DOCTYPE log4j:configuration PUBLIC -//log4j/log4j Configuration//EN
 log4j.dtd
 log4j:configuration xmlns:log4j=http://jakarta.apache.org/log4j/;
 !-- log4j:configuration debug=true  --
  !-- Appenders --
  appender name=console class=org.apache.log4j.ConsoleAppender
  param name=Target value=System.out /
  layout class=org.apache.log4j.PatternLayout
  param name=ConversionPattern value=%-5p: %c{1}:%L - 
 %m%n /
  /layout
  /appender

 appender name=file class=org.apache.log4j.RollingFileAppender
  param name=maxFileSize value=100KB /
  param name=maxBackupIndex value=5 /
 param name=File value=c:\myproj\myapp\logs\mylog.log /
 param name=Append value=true /
 layout class=org.apache.log4j.PatternLayout
  param name=ConversionPattern value=%d %-5p [%t] 
 %C{2} (%F:%L)
 - %m%n/
 /layout
 /appender

  !-- Application Loggers --
  logger name=com.mycom.myapp
  level value=debug /
  /logger

  !-- 3rdparty Loggers --
 ...

  !-- Root Logger --
  root
  priority value=warn /
  appender-ref ref=console /
  /root

 /log4j:configuration

 
 ?xml version=1.0 encoding=UTF-8 ?

 !-- A configuration element consists of optional renderer
 elements,appender elements, categories and an optional root
 element. --

 !ELEMENT log4j:configuration (renderer*,
 appender*,(category|logger)*,root?,
categoryFactory?)

 !-- The threshold attribute takes a level value such that all --
 !-- logging statements with a level equal or below this value are --
 !-- disabled. --

 !-- Setting the debug enable the printing of internal log4j logging
 --
 !-- statements.
 --

 !-- By default, debug attribute is null, meaning that we not do touch
 --
 !-- internal log4j logging settings. The null value for the threshold
 --
 !-- attribute can be misleading. The threshold field of a repository
  --
 !-- cannot be set to null. The null value for the threshold attribute
 --
 !-- simply means don't touch the threshold field, the threshold field
 --
 !-- keeps its old value.
 --

 !ATTLIST log4j:configuration
   xmlns:log4j  CDATA #FIXED http://jakarta.apache.org/log4j/;
   threshold(all|debug|info|warn|error|fatal|off|null)
 null
   debug