Hi there,
I am new to log4j. I have a few questions and hope to for your generous answer.
1) How to create a Logger? What are different of getLogger(name) and getLogger(class)?
2) I created a logger in the main one logger in a class specific. Why can I logged the specific class?
<PRE>
* TODO To change the template for this generated type comment go to
* Window - Preferences -
Java - Code Style - Code Templates
*/
import java.io.File;
import java.io.IOException;
import com.foo.Bar;
import org.apache.log4j.FileAppender;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.SimpleLayout;
public class MyApp
{
// Define a static logger variable so that it references the
// Logger instance named "MyApp".
static Logger logger = Logger.getLogger(MyApp.class);
public static void main(
String[] args)
{
File curDir = new File("");
File logDir = new File(curDir.getAbsolutePath() + "\\" + "logs");
if (!logDir.exists())
{
logDir.mkdir();
}
System.out.println("absolute path " + logDir.getAbsolutePath());
File logFile = new File(logDir.getAbsoluteFile() + "\\log.txt");
try
{
logFile.createNewFile();
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
SimpleLayout layout = new SimpleLayout();
FileAppender appender = null;
try {
appender = new FileAppender(layout, logFile.getAbsolutePath(),true);
} catch(Exception e) {}
logger.addAppender(appender);
logger.setLevel((Level) Level.DEBUG);
logger.debug("Here is some DEBUG");
logger.info("Here is some INFO");
logger.warn("Here is some WARN");
logger.error("Here is some ERROR");
logger.fatal("Here is some FATAL");
System.out.println(logFile.getPath());
PropertyConfigurator.configure(logFile.getPath());
// Set up a simple configuration that logs on the console.
// BasicConfigurator.configure();
logger.info("Entering application.");
Bar bar = new Bar();
bar.doIt();
logger.info("Exiting application.");
}
}
package com.foo;
import org.apache.log4j.Logger;
public class Bar
{
Logger logger = Logger.getLogger("com.foo.Bar");
public void doIt()
{
logger.debug("Did it again!");
}
}
</PRE>
Follow is my output:
DEBUG - Here is some DEBUG
INFO - Here is some INFO
WARN - Here is some WARN
ERROR - Here is some ERROR
FATAL - Here is some FATAL
INFO - Entering application.
INFO - Exiting application.
No did it again has been logged. Thank you very much
John