You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by "Chopra, Sumeet (Cognizant)" <CS...@cal.cognizant.com> on 2003/05/09 12:06:55 UTC
Log4j Problem
hi ,
I am doing this :
I want to log to 2 different files the log msgs.
I have a wrapper class around Log4j.
.Its like this
******************************************************************
import java.io.*;
import java.net.*;
import org.apache.log4j.xml.DOMConfigurator;
import org.apache.log4j.Category;
public class LoggingManager
{
private String clazzName = null;
private String user_id = null;
Category ReferenceCategory ;
static
{
try
{
String FName="D:\\bea\\user_projects\\CheckFreeDomain\\applications\\CheckFree\\log4j.xml";
DOMConfigurator.configure(FName);
}
catch(Exception e)
{
e.printStackTrace();
}
}
public LoggingManager(String className)
{
findParentCategory(className);
ReferenceCategory = Category.getInstance(className);
}
public Category findParentCategory(String CategoryName)
{
String l_ParentName = CategoryName ;
int lastIndex ;
boolean l_SearchEnd = false ;
while (l_SearchEnd == false ) {
if (Category.exists (l_ParentName) == null)
//SelfLogCategory.info ("Parent DOES NOT Exist" ) ;
System.out.println("Parent doesn't exist");
else {
//SelfLogCategory.info ("Parent DOES Exist" ) ;
System.out.println("Parent does exist");
l_SearchEnd = true ;
return Category.getInstance (l_ParentName) ;
}
lastIndex = l_ParentName.lastIndexOf ( "." ) ;
if (lastIndex != -1 ) {
l_ParentName = l_ParentName.substring (0, lastIndex) ;
//SelfLogCategory.info ("Next Parent ->" +l_ParentName) ;
System.out.println("Next parent is "+l_ParentName);
}
else
l_SearchEnd = true ;
}
return Category.getRoot() ;
}
public void logInfo(String InfoMessage) {
ReferenceCategory.info(InfoMessage);
}
public void logDebug(String debugMessage) {
ReferenceCategory.debug(debugMessage);
}
public void logWarn(String warnMessage) {
ReferenceCategory.warn(warnMessage);
}
public void logError(String errorMessage) {
ReferenceCategory.warn(errorMessage);
}
public void logFatal(String warnMessage) {
ReferenceCategory.warn(warnMessage);
}
}
********************************************************************
and my configuration file is as :
********************************************************************
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true" xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="A1" class="org.apache.log4j.FileAppender">
<param name="File" value="D:/bea/user_projects/CheckFreeDomain/applications/CheckFree/logs/SimpleLog.log" />
<param name="Append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{DATE} %-6r %-5p %30.30c %x - %m\n" />
</layout>
</appender>
<appender name="A2" class="org.apache.log4j.FileAppender">
<param name="File" value="D:/bea/user_projects/CheckFreeDomain/applications/CheckFree/logs/AuditTrail.log" />
<param name="Append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{DATE} %-6r %-5p %30.30c %x - %m\n"/>
</layout>
</appender>
<category name="checkFree">
<priority value="debug" />
<appender-ref ref="A1" />
</category>
<category name="checkFree">
<priority value="debug" />
<appender-ref ref="A2" />
</category>
<root>
<!-- The following level element is not necessary since the -->
<!-- level of the root level is set to DEBUG by default. -->
<level value ="INFO"/>
<appender-ref ref="A1" />
<appender-ref ref="A2" />
</root>
</log4j:configuration>
*******************************************************************************************
The problem is that it is logging to only one file AuditTrail.log
and not to SimpleLog.log .
it is giving me this error.
###################################################################
log4j:ERROR Attempted to append to closed appender named [A1].
###################################################################
and my logging class is :
###################################################################
public class MyAppNew
{
public static void main(String[] args)
{
System.out.println("In main method");
}
public void toPrint()
{
try
{
LoggingManager logManager = new LoggingManager("checkFree.MyApp");
logManager.logInfo("Loggin info from MyAppNew");
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
###################################################################
Can someone please tell me where I am going wrong ?
Thanks and Regards,
Sumeet Chopra.
Re: Log4j Problem
Posted by Amandeep Midha <Am...@itsprojects.com>.
Hi Sumeet,
First of all let me tell you that your query requires to be in Log4j User
List not in developer list.
I have seen ur xml using
<category name="checkFree">
<priority value="debug" />
<appender-ref ref="A1" />
</category>
<category name="checkFree">
<priority value="debug" />
<appender-ref ref="A2" />
</category>
Why u require it??
I think use of following code instead of above would suffice..
<category name="checkFree">
<priority value="debug" />
<appender-ref ref="A1" />
<appender-ref ref="A2" />
</category>
And if in any case u want both appenders at different priority, u can very
well do it in the appender declaration tag itself ( Refer log4j.dtd)
Pls let me know whether I have answered ur question!
best regards,
Amandeep
-----------------------------------------
Amandeep Midha (CHARMIE)
IT Solutions (India) Pvt. Ltd.
No. 17, South End Road,
Basavangudi
Bangalore - 560 004. India
TEL : 91-80-6657180 EXT: 2116
CELL: +91 9886148227
FAX: 91-80-6655755
-----------------------------------------
"Never Fear Shadows ;They only mean there is a light shining somewhere
nearby ...."
"Chopra, Sumeet
(Cognizant)" To: <lo...@jakarta.apache.org>
<CSumeet@cal.cogn cc:
izant.com> Subject: Log4j Problem
05/09/2003 03:36
PM
Please respond to
"Log4J Developers
List"
hi ,
I am doing this :
I want to log to 2 different files the log msgs.
I have a wrapper class around Log4j.
.Its like this
******************************************************************
import java.io.*;
import java.net.*;
import org.apache.log4j.xml.DOMConfigurator;
import org.apache.log4j.Category;
public class LoggingManager
{
private String clazzName = null;
private String user_id = null;
Category ReferenceCategory ;
static
{
try
{
String FName="D:
\\bea\\user_projects\\CheckFreeDomain\\applications\\CheckFree\\log4j.xml";
DOMConfigurator.configure(FName);
}
catch(Exception e)
{
e.printStackTrace();
}
}
public LoggingManager(String className)
{
findParentCategory(className);
ReferenceCategory = Category.getInstance(className);
}
public Category findParentCategory(String CategoryName)
{
String l_ParentName = CategoryName ;
int lastIndex ;
boolean l_SearchEnd = false ;
while (l_SearchEnd == false ) {
if (Category.exists (l_ParentName) == null)
//SelfLogCategory.info ("Parent DOES NOT Exist" ) ;
System.out.println("Parent doesn't exist");
else {
//SelfLogCategory.info ("Parent DOES Exist" ) ;
System.out.println("Parent does exist");
l_SearchEnd = true ;
return Category.getInstance (l_ParentName) ;
}
lastIndex = l_ParentName.lastIndexOf ( "." ) ;
if (lastIndex != -1 ) {
l_ParentName = l_ParentName.substring (0,
lastIndex) ;
//SelfLogCategory.info ("Next Parent ->"
+l_ParentName) ;
System.out.println("Next parent is "+l_ParentName);
}
else
l_SearchEnd = true ;
}
return Category.getRoot() ;
}
public void logInfo(String InfoMessage) {
ReferenceCategory.info(InfoMessage);
}
public void logDebug(String debugMessage) {
ReferenceCategory.debug(debugMessage);
}
public void logWarn(String warnMessage) {
ReferenceCategory.warn(warnMessage);
}
public void logError(String errorMessage) {
ReferenceCategory.warn(errorMessage);
}
public void logFatal(String warnMessage) {
ReferenceCategory.warn(warnMessage);
}
}
********************************************************************
and my configuration file is as :
********************************************************************
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true" xmlns:log4j="
http://jakarta.apache.org/log4j/">
<appender name="A1" class="org.apache.log4j.FileAppender">
<param name="File" value
="D:/bea/user_projects/CheckFreeDomain/applications/CheckFree/logs/SimpleLog.log"
/>
<param name="Append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{DATE} %-6r %-5p
%30.30c %x - %m\n" />
</layout>
</appender>
<appender name="A2" class="org.apache.log4j.FileAppender">
<param name="File" value
="D:/bea/user_projects/CheckFreeDomain/applications/CheckFree/logs/AuditTrail.log"
/>
<param name="Append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{DATE} %
-6r %-5p %30.30c %x - %m\n"/>
</layout>
</appender>
<category name="checkFree">
<priority value="debug" />
<appender-ref ref="A1" />
</category>
<category name="checkFree">
<priority value="debug" />
<appender-ref ref="A2" />
</category>
<root>
<!-- The following level element is not necessary since the -->
<!-- level of the root level is set to DEBUG by default. -->
<level value ="INFO"/>
<appender-ref ref="A1" />
<appender-ref ref="A2" />
</root>
</log4j:configuration>
*******************************************************************************************
The problem is that it is logging to only one file AuditTrail.log
and not to SimpleLog.log .
it is giving me this error.
###################################################################
log4j:ERROR Attempted to append to closed appender named [A1].
###################################################################
and my logging class is :
###################################################################
public class MyAppNew
{
public static void main(String[] args)
{
System.out.println("In main method");
}
public void toPrint()
{
try
{
LoggingManager logManager = new LoggingManager
("checkFree.MyApp");
logManager.logInfo("Loggin info from MyAppNew");
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
###################################################################
Can someone please tell me where I am going wrong ?
Thanks and Regards,
Sumeet Chopra.
(See attached file: InterScan_SafeStamp.txt)(See attached file:
InterScan_Disclaimer.txt)
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: log4j-dev-help@jakarta.apache.org