2011-02-23 69 views
0

如何使用log4j将项目中运行的所有操作和异常都获取到文件中。Log4j属性和log4j.xml

+0

是您的应用程序web应用程序的命令行工具或其他什么东西? – 2011-02-23 13:01:30

+0

更精确。你做了什么 ? – LB40 2012-11-13 12:51:44

回答

0

1使用记录器机制将所有异常和错误记录到存储在硬盘驱动器或服务器位置的文件(example : C:\\MyProject\logs\Mylog.txt

  1. 我在谈论的记录器机制是Log4j的使用,它将帮助记录应用程序中报告的所有异常在单独的路径。

  2. Log4j.jar必须与其他相关的jar文件一起放在lib文件夹中。

有用的链接:http://www.mkyong.com/struts/struts-log4j-integration-example/

0

你可以把下面的log4j.xml在类路径:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> 
    <appender name="CA" class="org.apache.log4j.ConsoleAppender"> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%-4r [%t] %-5p %c %x - %m%n" /> 
     </layout> 
    </appender> 
    <root> 
     <level value="debug" /> 
     <appender-ref ref="CA" /> 
    </root> 
</log4j:configuration> 

而且你需要在你的应用程序的正确记录语句,例如:

public class HelloWorld { 

    static Logger logger = Logger.getLogger(HelloWorld.class); 

    public static void main(String[] args) { 
     logger.debug("Sample debug message"); 
     logger.info("Sample info message"); 
     logger.warn("Sample warn message"); 
     logger.error("Sample error message"); 
     logger.fatal("Sample fatal message"); 
    } 
} 
0

我怀疑你问这个,但以防万一(其不清楚你的问题):

如果您正在寻找记录任何异常,你的应用程序(代码)抛出你将不得不使用像aspectj这样的东西。要做到这一点其他明智的你将有:

try { 
// some questionable code 
} 
catch(Exception e) { 
    log.error(e); 
    throw new RuntimeException(e); 
} 
0

Log4j主要有三个部分:记录器,追加和布局。这三种类型的组件协同工作,使开发人员能够根据消息类型和级别记录消息,并在运行时控制这些消息的格式和报告位置。

this例如