`
king_tt
  • 浏览: 2233503 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

项目中用log4j记录日志到指定目录

 
阅读更多

笔记之用


记录日志首先要有log4j.properties,配置如下:

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p [%t] (%F:%L) - %m%n
 
log4j.rootLogger=info, stdout,DR
 
log4j.logger.org.hibernate.test=info
log4j.logger.org.hibernate.tool.hbm2ddl=debug
log4j.logger.org.hibernate.sql.ordering.antlr.OrderByFragmentTranslator=trace
 
 
log4j.appender.DR=org.apache.log4j.RollingFileAppender
log4j.appender.DR.File=D:/apache-tomcat-6.0.32/logs/pageloading.log
log4j.appender.DR.MaxFileSize=10MB
# Archive log files
log4j.appender.DR.MaxBackupIndex=100
log4j.appender.DR.DatePattern='.'yyyy-MM-dd
log4j.appender.DR.layout=org.apache.log4j.PatternLayout
log4j.appender.DR.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} %p [%t] (%F:%L) - %m%n

上面的log4j.appender.DR.File=D:/apache-tomcat-6.0.32/logs/pageloading.log就是指定日志的路径


在Action中要记录日志的话,首先要有

private Logger logger = Logger.getLogger(UserAction.class);--传进来的是当前类的clas
记录的话用

this.logger.info("具体信息");
this.logger.error("具体信息");

但是如果程序在执行的时候报异常了,是记录不了异常的,所以要对异常进行处理,比如说

try {
            System.out.println(10/0);//执行到这里会报异常
        } catch (Exception e) {
            StringWriter sw=new StringWriter();   
            PrintWriter pw=new PrintWriter(sw);
            e.printStackTrace(pw);
            this.logger.error(sw.toString());
        }

这样就把异常的错误详细信息给记录到日志里了



异常日志记录工具类

import java.io.PrintWriter;
import java.io.StringWriter;
 
import org.apache.log4j.Logger;
 
public class LogUtil {
 
    private LogUtil() {
 
    }
     
    private static StringWriter sw=new StringWriter();
    private static PrintWriter pw=new PrintWriter(sw);
 
    public static void info(Class logClass, Exception e) {
        Logger logger = Logger.getLogger(logClass);
        e.printStackTrace(pw);
        logger.error(sw.toString());
    }
     
    public static void error(Class logClass, Exception e) {
        Logger logger = Logger.getLogger(logClass);
        e.printStackTrace(pw);
        logger.error(sw.toString());
    }
     
    public static void warn(Class logClass, Exception e) {
        Logger logger = Logger.getLogger(logClass);
        e.printStackTrace(pw);
        logger.error(sw.toString());
    }
     
    public static void debug(Class logClass, Exception e) {
        Logger logger = Logger.getLogger(logClass);
        e.printStackTrace(pw);
        logger.error(sw.toString());
    }
}

如何使用呢

try {
            System.out.println(10/0);
        } catch (Exception e) {
            LogUtil.info(UserAction.class, e);
        }

这样记录日志就方便了....

分享到:
评论

相关推荐

    log4j日志记录

    Log4j是由Apache组织提供的一个开源项目,主要用于实现日志记录功能。在现代软件开发中,特别是在企业级应用开发领域,日志记录是必不可少的一个环节。它能够帮助开发者追踪程序运行状态,调试错误,监控性能等。Log...

    log4j日志的数据库管理

    1. **下载并引入Log4j库**:确保将最新版本的Log4j.jar包添加到项目库中。 2. **编辑log4j.properties文件**:此文件位于项目根目录下的src目录,用于定义日志记录的规则。其中,`log4j.rootLogger`配置项指定了...

    log4j配置和加载方法

    在`.properties`文件中,配置信息通过键值对的形式呈现,如示例中的`log4j.category.org.zblog=ERROR,A1`,这里指定了`org.zblog`这个logger的日志级别为`ERROR`,并关联到名为`A1`的appender。 2. **.xml格式**:...

    Tomcat使用Log4j输出catalina.out日志

    日志格式和项目中用log4j打出来的不一致,不利于解析。 从tomcat官网(https://tomcat.apache.org/tomcat-7.0-doc/logging.html)上找了下,修改一些配置、替换扩展包即可使用log4j输出catalian.out。 在$CATALINA_...

    Spring Secruity 项目中用到的包整理

    4. `com.springsource.org.apache.log4j-1.2.15.jar`: 这是Apache Log4j的日志库,Spring Security和其他许多框架一样,使用Log4j进行日志记录,帮助开发者调试和跟踪安全相关的事件。 5. `org.springframework.web...

    在window是cmd下实现动态查看日志

    1. 首先,将`tail.exe`放在系统的PATH环境变量所包含的目录下,或者将其复制到你需要使用它的目录。 2. 打开命令提示符窗口,输入`tail -f 日志文件路径`,例如:`tail -f C:\path\to\your\log.log`。 3. 现在,CMD...

    log4j配置文件

    log4j的简单配置,可以直接在项目中用,当然只是用自己学习时用。

    Log Explorer for SQL Server v4.22

    执行Drop Table和Truncate Table命令虽然会被SQLServer记录到日志文件中,但是并不记录被删除的数据。你可以使用LogExplore提供的功能来恢复这些数据。LogExplore提供两种机制来恢复被Drop或者Truncate的数据。 1、...

    C++删除指定文件夹下N天及之前日志文件的方法

    在实际应用中,这样的功能可以集成到日志管理系统或者任何需要定期清理文件的系统中。为了确保安全性和可靠性,通常还需要添加错误处理机制,例如检查文件是否存在,权限是否足够等。此外,可能还需要考虑多线程环境...

    Log Explorer for SQL Server v4.22 含注册机

    执行Drop Table和Truncate Table命令虽然会被SQLServer记录到日志文件中,但是并不记录被删除的数据。你可以使用LogExplore提供的功能来恢复这些数据。LogExplore提供两种机制来恢复被Drop或者Truncate的数据。 1、...

    notepad++ 查看log的语言格式

    notepad++ 查看log的语言格式

    Delphi中用多线程实现日志文件的读写与管理

    最后,考虑到日志的可读性,日志格式应具有一定的规范。可以采用类似的时间戳、优先级、线程ID、源代码位置等信息,使得分析日志时更容易定位问题。此外,对于错误或异常情况,应提供详细的堆栈跟踪信息,以便快速...

    Apache log4cxx在C++多进程多线程下的使用.pdf

    Apache log4cxx 是 Apache Logging Services 三个日志记录项目之一,完全开源组件。是著名的日志记录组件 log4j 的 C++ 移植版,用于为 C++ 程序提供日志功能,以便开发者对目标程序进行调试和审计。当前的最新版本...

    sql2000 Log Explorer4.2(含注册码)+汉化

    执行Drop Table和Truncate Table命令虽然会被SQLServer记录到日志文件中,但是并不记录被删除的数据。你可以使用LogExplore提供的功能来恢复这些数据。LogExplore提供两种机制来恢复被Drop或者Truncate的数据。 1、...

    读写日志文件

    2. Java:`java.util.logging`或第三方库如Log4j、Logback,都提供了多线程日志处理能力。 3. C++:可以使用Glog或spdlog,它们都支持多线程环境下的日志处理。 六、日志存储与检索 1. 文件存储:简单易用,但查询...

    Log Explorer4.2帮助文档

    执行Drop Table和Truncate Table命令虽然会被SQLServer记录到日志文件中,但是并不记录被删除的数据。你可以使用LogExplore提供的功能来恢复这些数据。LogExplore提供两种机制来恢复被Drop或者Truncate的数据。 1、...

    Oracle中用LogMiner分析重做及归档日志

    Oracle中的LogMiner是一个强大的日志分析工具,它内置于Oracle8i和Oracle9i数据库系统中,专门用于解析重做日志和归档日志,以获取数据库中发生的事务变化信息。LogMiner能够精确地定位DML(数据操纵语言)和DDL...

    linux log日志查看【syslogd logrotate】.zip

    它根据预定义的规则(通常配置在/etc/syslog.conf或/etc/rsyslog.conf文件中)将这些消息转发到指定的日志文件、网络目的地或者终端。syslogd支持多种日志级别,例如 emerg(紧急)、alert(警报)、crit(严重)、...

    hadoop 日志案例资源 show.log

    http://blog.csdn.net/manageer/article/details/51169742 本博客中用到

    项目中用Yeoman构建AngularJS

    在我们的案例中,"项目中用Yeoman构建AngularJS",意味着我们要使用一个专门针对AngularJS的Yeoman Generator。这个Generator通常会为你创建一个包含基本目录结构、配置文件和依赖的AngularJS项目。常见的AngularJS ...

Global site tag (gtag.js) - Google Analytics