在项目中记录日志
2013-05-10 18:33
99 查看
最近写了几个接口和服务,发现自己在java基础部分的几个薄弱环节:
1.日志的记录。2.对于异常的捕获与处理。3.对应文件读写的综合运用,尤其是结合线程。4.webservice的写法模式还需要巩固5.Hessian的用法,有空总结一下。
下面就日志的记录做一下总结:
以前没有养成写规范日志的习惯,一直都用println语句输出控制台,上线之后,查看错误日志本来就是一件很头疼的事情,而且看见自己的日志一团糟更烦了,看见别人的项目日志都很有规律,所以学习了一下。技术很简单,但是作为基础,每个项目基本上都能用到,记录一下,以后好用。先贴代码,下面再解释。
LoggerFactory类:(logger一般是通过配置文件指定具体是哪种实现类,在这里为了简单说明,直接new了)
SystemLogger实现类:
这里解释一下SystemLogger与Log4jLogger的区别,SystemLogger一般用于控制台输出,也就是上线之后在logs下生成的日志文件,不需要配置文件。Log4jLogger一般用于输出到文件,而且可以log4j的配置生成对个文件。如果不为生成文件,只为记录程序运行过程的记录,用SystemLogger就可以了。
测试类:
这样去查日志的话就很规范了。
对于log4j的话,也可以不用这个类,直接LogFactory.getLog(String.class).info("log4j测试");就可以了。log4j的配置参数在下面一篇文章里再做说明。
补充:在spring配置文件里面的配置:
1.日志的记录。2.对于异常的捕获与处理。3.对应文件读写的综合运用,尤其是结合线程。4.webservice的写法模式还需要巩固5.Hessian的用法,有空总结一下。
下面就日志的记录做一下总结:
以前没有养成写规范日志的习惯,一直都用println语句输出控制台,上线之后,查看错误日志本来就是一件很头疼的事情,而且看见自己的日志一团糟更烦了,看见别人的项目日志都很有规律,所以学习了一下。技术很简单,但是作为基础,每个项目基本上都能用到,记录一下,以后好用。先贴代码,下面再解释。
Logger类:(定义三个基本的方法,logDebug,logInfo,logError) public abstract class Logger { protected boolean debug = true; public abstract void logError(String message); public void logDebug(String message) { if (!debug) return; } public abstract void logInfo(String message); public boolean isDebug() { return debug; } public void setDebug(boolean debug) { this.debug = debug; } }
LoggerFactory类:(logger一般是通过配置文件指定具体是哪种实现类,在这里为了简单说明,直接new了)
public class LoggerFactory { public static Logger logger = new SystemLogger(); public static Logger getLogger() { return logger; } public void setLogger(Logger logger) { LoggerFactory.logger = logger; } }
SystemLogger实现类:
public class SystemLogger extends Logger { public static final String DEBUG = "[DEBUG]\t"; public static final String ERROR = "[ERROR]\t"; public static final String INFO = "[INFO]\t"; @Override public void logDebug(String message) { super.logDebug(message); System.out.println(DEBUG + message); } @Override public void logError(String message) { System.err.println(ERROR + message); } @Override public void logInfo(String message) { System.out.println(INFO+message); } }Log4jLogger实现类:
public class Log4jLogger extends Logger { private static final Log errorlog = LogFactory.getLog("Error"); private static final Log infoLog = LogFactory.getLog("Info"); private static final Log debugLog = LogFactory.getLog("Debug"); @Override public void logError(String message) { errorlog.error(message); } @Override public void logDebug(String message) { super.logDebug(message); debugLog.debug(message); } @Override public void logInfo(String message) { infoLog.info(message); } }
这里解释一下SystemLogger与Log4jLogger的区别,SystemLogger一般用于控制台输出,也就是上线之后在logs下生成的日志文件,不需要配置文件。Log4jLogger一般用于输出到文件,而且可以log4j的配置生成对个文件。如果不为生成文件,只为记录程序运行过程的记录,用SystemLogger就可以了。
测试类:
Logger logger = LoggerFactory.getLogger(); String msg = "msg"; logger.logDebug("dao get Id "+msg); 结果:[DEBUG] dao get Id msg
这样去查日志的话就很规范了。
对于log4j的话,也可以不用这个类,直接LogFactory.getLog(String.class).info("log4j测试");就可以了。log4j的配置参数在下面一篇文章里再做说明。
补充:在spring配置文件里面的配置:
<bean id="Logger" class="com.tenddata.global.service.standardization.commons.log.impl.SystemLogger"> <property name="debug" value="true"></property> </bean> <bean id="LoggerFactory" class="com.tenddata.global.service.standardization.common.factory.LoggerFactory"> <property name="logger" ref="Logger"></property> </bean>
相关文章推荐
- Java项目如何记录日志
- java开源项目之IQQ学习记录之单例模式与log4j日志记录
- Javaweb项目中使用Log4j记录日志
- 使用log4qt在qt项目中记录日志
- Web项目中使用NLog记录日志,利用单件模式控制整个项目只有一个Logger对象的问题
- Java项目如何记录日志
- Java项目中使用log记录日志的一些总结
- Java项目日志记录(log4j使用)
- java开源项目之IQQ学习记录之单例模式与log4j日志记录
- javaweb项目记录log4j日志过滤器
- 采用AOP+log4j记录项目日志
- Java : 项目如何记录 log4j 日志 ,
- Flex项目调试及日志记录
- win服务器下部署php项目磁盘被占满-原因: xdebug模块日志记录
- 项目中用log4j记录日志到指定目录
- .NET开源项目介绍及资源推荐:日志记录
- 【SpringBoot探索二】SpringBoot项目集成日志记录功能
- 项目中碰见的错误(五)Log4Net在Windows服务中不能记录日志
- 项目日志记录优化(一)
- 关于项目中记录日志的几个相关jar报slf4j-api、slf4j-log4j12以及log4j之间什么关系?