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 Sriram Venkatasubramanian <Sr...@adeasolutions.com> on 2005/07/07 07:49:58 UTC

RE: Clarification & More help required

Hi All, 
I am also facing similar problem ! Log4j is unable read the env
variables. My problem is I cant hard code the path of the log file as
C:\XXX\xxLog.log. I have to read the relative path for this purpose .
Any idea ?

I am using OC4J & log4J 1.2.11  & My log4j.xml is as below. 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
debug="false">
	<appender name="DAO_FRAMEWORK"
class="org.apache.log4j.DailyRollingFileAppender">
		<param name="File"
value="$(JAVA_HOME)/DAOFramework.log"/>
		<param name="Append" value="true"/>
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d %-5p
[%c{1}] %m%n"/>
		</layout>
	</appender>
	<appender name="CONSOLE"
class="org.apache.log4j.ConsoleAppender">
		<param name="Threshold" value="INFO"/>
		<param name="Target" value="System.out"/>
		<layout class="org.apache.log4j.PatternLayout">
			<!-- The default pattern: Date Priority
[Category] Message\n -->
			<param name="ConversionPattern"
value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
		</layout>
	</appender>
		
	<!-- DAO Framework -->
	<logger name="DAO" additivity="false">
		<level value="INFO"/>
		<appender-ref ref="CONSOLE"/>
		<appender-ref ref="DAO_FRAMEWORK"/>
	</logger>	
	
	<!-- Root Logger -->
	<root>
	    <level value="DEBUG"/>
		<appender-ref ref="CONSOLE"/>
		<appender-ref ref="DAO_FRAMEWORK"/>
	</root>

</log4j:configuration>

 And I am getting  errors like :

Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)
initialized
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: $(JAVA_HOME)/DAOFramework.log (The system
cannot find the path specified)
      at java.io.FileOutputStream.openAppend(Native Method)
      at java.io.FileOutputStream.<init>(Unknown Source)
      at org.apache.log4j.FileAppender.setFile(FileAppender.java:282)
      at
org.apache.log4j.FileAppender.activateOptions(FileAppender.java:161)
      at
org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFi
leAppender.java:215)
      at
org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:256)
      at
org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:
219)
      at
org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurator.
java:149)



I am calling Logger like this in Java Code :
		Logger logger =Logger.getLogger("DAO");
		logger.info("I am inside logger"+this);

Regards,
Sriram V


-----Original Message-----
From: Vinodh Srinivasasainagendra [mailto:vinodh@uab.edu] 
Sent: Wednesday, July 06, 2005 9:59 PM
To: 'Log4J Users List'
Subject: RE: Clarification

Did u try ${some_property_key} (for example, java.home or user.home
system
properties) to specify the path in front of the File.

Ex:

log4j.appender.dest2.File=${java.home}/log4j.log

~vinodh

-----Original Message-----
From: Balaji Saranathan [mailto:balaji.saranathan@wipro.com] 
Sent: Wednesday, July 06, 2005 11:06 AM
To: 'Log4J Users List'
Subject: RE: Clarification


But isnt this configuring through the code? I want to configure the
FileAppender from the log4j.properties file. 


-----Original Message-----
From: Vinodh Srinivasasainagendra [mailto:vinodh@uab.edu] 
Sent: Wednesday, July 06, 2005 12:01 PM
To: 'Log4J Users List'
Subject: RE: Clarification


See the attached code,

 

// Set FileAppender

            SimpleLayout layout = new SimpleLayout();

            String fileName = new
File(backupDir.getParent(),"error.log").getAbsolutePath();

            FileAppender appender = new FileAppender(layout,
fileName,true);

            

logger.addAppender(appender);

            logger.setLevel((Level) Level.FATAL);

            Date date = new Date(System.currentTimeMillis());

           

            logger.fatal(date.toString());

            logger.fatal(message);

 
logger.fatal("***************************************************");

 

Note:

Make sure you give the parent dir to the log file properly.

 

~vinodh 

-----Original Message-----
From: Balaji Saranathan [mailto:balaji.saranathan@wipro.com] 
Sent: Wednesday, July 06, 2005 10:47 AM
To: 'Log4J Users List'
Subject: RE: Clarification

 

 

Tx. I tried it. It doesn't work I still get the same error. In the error

below, there is a call to setFile with "null" filename. Shdnt it be

called with the filename mentioned in the properties file?

 

 

 

-----Original Message-----

From: Schuweiler, Joel J. [mailto:Schuweiler.Joel@mayo.edu] 

Sent: Wednesday, July 06, 2005 11:38 AM

To: 'Log4J Users List'

Subject: RE: Clarification

 

 

If can't find the path, have you tried removed the leading ./?

 

For a path I would do

 

logs/framework.log assuming that it is contained in the same directory

that your class is running from.

 

-----Original Message-----

From: Balaji Saranathan [mailto:balaji.saranathan@wipro.com] 

Sent: Wednesday, July 06, 2005 10:33 AM

To: 'Log4J Users List'

Subject: Clarification

 

 

 

Hi,

 

Can you tell me if log4j creates the log file (if they are not present)

when using the FileAppenders or is it the responsibility of the

developers to create the log files? I have a FileAppender configured and

when I configure the

log4j.appender.framework.File=framework.log=./logs/framework.log

I get a the following error on stdout.log

 

log4j:ERROR setFile(null,true) call failed.

java.io.FileNotFoundException: .\logs\framework.log (The system cannot

find the path specified)

      at java.io.FileOutputStream.openAppend(Native Method)

      at java.io.FileOutputStream.<init>(FileOutputStream.java:177)

      at java.io.FileOutputStream.<init>(FileOutputStream.java:102)

      at org.apache.log4j.FileAppender.setFile(FileAppender.java:282)

      at

org.apache.log4j.RollingFileAppender.setFile(RollingFileAppender.java:16

5)

      at

org.apache.log4j.FileAppender.activateOptions(FileAppender.java:161)

      at

org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:256)

      at

org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java

:132)

      at

org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java

:96)

      at

org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator

.java:654)

      at

org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator

.java:612)

      at

org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConf

igurator.java:509)

      at

org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.j

ava:415)

      at

org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.j

ava:441)

      at

org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConver

ter.java:468)

 

 

 

 

 

 

 

Confidentiality Notice 

 

The information contained in this electronic message and any attachments

to this message are intended for the exclusive use of the addressee(s)

and may contain confidential or privileged information. If you are not

the intended recipient, please notify the sender at Wipro or

Mailadmin@wipro.com immediately and destroy all copies of this message

and any attachments.

 

---------------------------------------------------------------------

To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org

For additional commands, e-mail: log4j-user-help@logging.apache.org

 

 

 

 

Confidentiality Notice 

 

The information contained in this electronic message and any attachments
to this message are intended

for the exclusive use of the addressee(s) and may contain confidential
or privileged information. If

you are not the intended recipient, please notify the sender at Wipro or
Mailadmin@wipro.com immediately

and destroy all copies of this message and any attachments.

 

---------------------------------------------------------------------

To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org

For additional commands, e-mail: log4j-user-help@logging.apache.org





Confidentiality Notice 

The information contained in this electronic message and any attachments
to
this message are intended
for the exclusive use of the addressee(s) and may contain confidential
or
privileged information. If
you are not the intended recipient, please notify the sender at Wipro or
Mailadmin@wipro.com immediately
and destroy all copies of this message and any attachments.

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

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


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


Re: Clarification & More help required

Posted by James Stauffer <st...@gmail.com>.
AFAIK you can only use Java System properties.  To set them pass them
on the Java command with "-D"

On 7/7/05, Sriram Venkatasubramanian
<Sr...@adeasolutions.com> wrote:
> Hi All,
> I am also facing similar problem ! Log4j is unable read the env
> variables. My problem is I cant hard code the path of the log file as
> C:\XXX\xxLog.log. I have to read the relative path for this purpose .
> Any idea ?
> 
> I am using OC4J & log4J 1.2.11  & My log4j.xml is as below.
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
> debug="false">
>         <appender name="DAO_FRAMEWORK"
> class="org.apache.log4j.DailyRollingFileAppender">
>                 <param name="File"
> value="$(JAVA_HOME)/DAOFramework.log"/>
>                 <param name="Append" value="true"/>
>                 <layout class="org.apache.log4j.PatternLayout">
>                         <param name="ConversionPattern" value="%d %-5p
> [%c{1}] %m%n"/>
>                 </layout>
>         </appender>
>         <appender name="CONSOLE"
> class="org.apache.log4j.ConsoleAppender">
>                 <param name="Threshold" value="INFO"/>
>                 <param name="Target" value="System.out"/>
>                 <layout class="org.apache.log4j.PatternLayout">
>                         <!-- The default pattern: Date Priority
> [Category] Message\n -->
>                         <param name="ConversionPattern"
> value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
>                 </layout>
>         </appender>
> 
>         <!-- DAO Framework -->
>         <logger name="DAO" additivity="false">
>                 <level value="INFO"/>
>                 <appender-ref ref="CONSOLE"/>
>                 <appender-ref ref="DAO_FRAMEWORK"/>
>         </logger>
> 
>         <!-- Root Logger -->
>         <root>
>             <level value="DEBUG"/>
>                 <appender-ref ref="CONSOLE"/>
>                 <appender-ref ref="DAO_FRAMEWORK"/>
>         </root>
> 
> </log4j:configuration>
> 
>  And I am getting  errors like :
> 
> Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)
> initialized
> log4j:ERROR setFile(null,true) call failed.
> java.io.FileNotFoundException: $(JAVA_HOME)/DAOFramework.log (The system
> cannot find the path specified)
>       at java.io.FileOutputStream.openAppend(Native Method)
>       at java.io.FileOutputStream.<init>(Unknown Source)
>       at org.apache.log4j.FileAppender.setFile(FileAppender.java:282)
>       at
> org.apache.log4j.FileAppender.activateOptions(FileAppender.java:161)
>       at
> org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFi
> leAppender.java:215)
>       at
> org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:256)
>       at
> org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:
> 219)
>       at
> org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurator.
> java:149)
> 
> 
> 
> I am calling Logger like this in Java Code :
>                 Logger logger =Logger.getLogger("DAO");
>                 logger.info("I am inside logger"+this);
> 
> Regards,
> Sriram V
> 
> 
> -----Original Message-----
> From: Vinodh Srinivasasainagendra [mailto:vinodh@uab.edu]
> Sent: Wednesday, July 06, 2005 9:59 PM
> To: 'Log4J Users List'
> Subject: RE: Clarification
> 
> Did u try ${some_property_key} (for example, java.home or user.home
> system
> properties) to specify the path in front of the File.
> 
> Ex:
> 
> log4j.appender.dest2.File=${java.home}/log4j.log
> 
> ~vinodh
> 
> -----Original Message-----
> From: Balaji Saranathan [mailto:balaji.saranathan@wipro.com]
> Sent: Wednesday, July 06, 2005 11:06 AM
> To: 'Log4J Users List'
> Subject: RE: Clarification
> 
> 
> But isnt this configuring through the code? I want to configure the
> FileAppender from the log4j.properties file.
> 
> 
> -----Original Message-----
> From: Vinodh Srinivasasainagendra [mailto:vinodh@uab.edu]
> Sent: Wednesday, July 06, 2005 12:01 PM
> To: 'Log4J Users List'
> Subject: RE: Clarification
> 
> 
> See the attached code,
> 
> 
> 
> // Set FileAppender
> 
>             SimpleLayout layout = new SimpleLayout();
> 
>             String fileName = new
> File(backupDir.getParent(),"error.log").getAbsolutePath();
> 
>             FileAppender appender = new FileAppender(layout,
> fileName,true);
> 
> 
> 
> logger.addAppender(appender);
> 
>             logger.setLevel((Level) Level.FATAL);
> 
>             Date date = new Date(System.currentTimeMillis());
> 
> 
> 
>             logger.fatal(date.toString());
> 
>             logger.fatal(message);
> 
> 
> logger.fatal("***************************************************");
> 
> 
> 
> Note:
> 
> Make sure you give the parent dir to the log file properly.
> 
> 
> 
> ~vinodh
> 
> -----Original Message-----
> From: Balaji Saranathan [mailto:balaji.saranathan@wipro.com]
> Sent: Wednesday, July 06, 2005 10:47 AM
> To: 'Log4J Users List'
> Subject: RE: Clarification
> 
> 
> 
> 
> 
> Tx. I tried it. It doesn't work I still get the same error. In the error
> 
> below, there is a call to setFile with "null" filename. Shdnt it be
> 
> called with the filename mentioned in the properties file?
> 
> 
> 
> 
> 
> 
> 
> -----Original Message-----
> 
> From: Schuweiler, Joel J. [mailto:Schuweiler.Joel@mayo.edu]
> 
> Sent: Wednesday, July 06, 2005 11:38 AM
> 
> To: 'Log4J Users List'
> 
> Subject: RE: Clarification
> 
> 
> 
> 
> 
> If can't find the path, have you tried removed the leading ./?
> 
> 
> 
> For a path I would do
> 
> 
> 
> logs/framework.log assuming that it is contained in the same directory
> 
> that your class is running from.
> 
> 
> 
> -----Original Message-----
> 
> From: Balaji Saranathan [mailto:balaji.saranathan@wipro.com]
> 
> Sent: Wednesday, July 06, 2005 10:33 AM
> 
> To: 'Log4J Users List'
> 
> Subject: Clarification
> 
> 
> 
> 
> 
> 
> 
> Hi,
> 
> 
> 
> Can you tell me if log4j creates the log file (if they are not present)
> 
> when using the FileAppenders or is it the responsibility of the
> 
> developers to create the log files? I have a FileAppender configured and
> 
> when I configure the
> 
> log4j.appender.framework.File=framework.log=./logs/framework.log
> 
> I get a the following error on stdout.log
> 
> 
> 
> log4j:ERROR setFile(null,true) call failed.
> 
> java.io.FileNotFoundException: .\logs\framework.log (The system cannot
> 
> find the path specified)
> 
>       at java.io.FileOutputStream.openAppend(Native Method)
> 
>       at java.io.FileOutputStream.<init>(FileOutputStream.java:177)
> 
>       at java.io.FileOutputStream.<init>(FileOutputStream.java:102)
> 
>       at org.apache.log4j.FileAppender.setFile(FileAppender.java:282)
> 
>       at
> 
> org.apache.log4j.RollingFileAppender.setFile(RollingFileAppender.java:16
> 
> 5)
> 
>       at
> 
> org.apache.log4j.FileAppender.activateOptions(FileAppender.java:161)
> 
>       at
> 
> org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:256)
> 
>       at
> 
> org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java
> 
> :132)
> 
>       at
> 
> org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java
> 
> :96)
> 
>       at
> 
> org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator
> 
> .java:654)
> 
>       at
> 
> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator
> 
> .java:612)
> 
>       at
> 
> org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConf
> 
> igurator.java:509)
> 
>       at
> 
> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.j
> 
> ava:415)
> 
>       at
> 
> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.j
> 
> ava:441)
> 
>       at
> 
> org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConver
> 
> ter.java:468)
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Confidentiality Notice
> 
> 
> 
> The information contained in this electronic message and any attachments
> 
> to this message are intended for the exclusive use of the addressee(s)
> 
> and may contain confidential or privileged information. If you are not
> 
> the intended recipient, please notify the sender at Wipro or
> 
> Mailadmin@wipro.com immediately and destroy all copies of this message
> 
> and any attachments.
> 
> 
> 
> ---------------------------------------------------------------------
> 
> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> 
> For additional commands, e-mail: log4j-user-help@logging.apache.org
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Confidentiality Notice
> 
> 
> 
> The information contained in this electronic message and any attachments
> to this message are intended
> 
> for the exclusive use of the addressee(s) and may contain confidential
> or privileged information. If
> 
> you are not the intended recipient, please notify the sender at Wipro or
> Mailadmin@wipro.com immediately
> 
> and destroy all copies of this message and any attachments.
> 
> 
> 
> ---------------------------------------------------------------------
> 
> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> 
> For additional commands, e-mail: log4j-user-help@logging.apache.org
> 
> 
> 
> 
> 
> Confidentiality Notice
> 
> The information contained in this electronic message and any attachments
> to
> this message are intended
> for the exclusive use of the addressee(s) and may contain confidential
> or
> privileged information. If
> you are not the intended recipient, please notify the sender at Wipro or
> Mailadmin@wipro.com immediately
> and destroy all copies of this message and any attachments.
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> For additional commands, e-mail: log4j-user-help@logging.apache.org
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> For additional commands, e-mail: log4j-user-help@logging.apache.org
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> For additional commands, e-mail: log4j-user-help@logging.apache.org
> 
> 


-- 
James Stauffer
Are you good? Take the test at http://www.livingwaters.com/good/

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