如何通过日志来app调试webb App

ThinkPHP调试模式与日志记录
1、可以在config.php中进行设置,默认为关闭状态。
'APP_DEBUG'&&
打开\ThinkPHP\Common\debug.php文件可以查看debug的默认设置如下:
return& array(
'LOG_RECORD'=&true,& //
进行日志记录
'LOG_RECORD_LEVEL'&&&&&&
array('EMERG','ALERT','CRIT','ERR','WARN','NOTIC','INFO','DEBUG','SQL'),&
// 允许记录的日志级别
'DB_FIELDS_CACHE'=& false, //数据库字段缓存
'SHOW_RUN_TIME'=&true,&&&&&&&&&
// 运行时间显示
'SHOW_ADV_TIME'=&true,&&&&&&&&&
// 显示详细的运行时间
'SHOW_DB_TIMES'=&true,&&&&&&&&&
// 显示数据库查询和写入次数
'SHOW_CACHE_TIMES'=&true,&&&&&&
// 显示缓存操作次数
'SHOW_USE_MEM'=&true,&&&&&&&&&&
// 显示内存开销
'SHOW_PAGE_TRACE'=&true,&&&&&&&
// 显示页面Trace信息 由Trace文件定义和Action操作赋值
'APP_FILE_CASE'&
=&&& true, //
是否检查文件的大小写 对Windows平台有效
注意事项:DB_FIELDS_CACHE数据库字段缓存默认关闭状态,如果开启的话,会在Runtime\Data文件夹下生成文件缓存,并且修改表之后,如新加了字段,这个缓存无法记录你的操作,需要我们手动删除一次,对表的修改才会成功。
将'APP_DEBUG'&&
=&& true后,访问页面会出现如下图的DEBUG提示:
如果只想显示一部分提示信息,如运行时间,内存开销等,
可以在config.php中进行相应的设置即可,如:
//'APP_DEBUG'&&
=&& true,& //
调试模式开关
'SHOW_RUN_TIME' =&&
true,& //运行时间显示
'SHOW_ADV_TIME' =&&
true,& //显示详细的运行时间
'SHOW_DB_TIMES' =&&
true,& //显示数据库的操作次数
'SHOW_CACHE_TIMES'=&true,&
//显示缓存操作次数
'SHOW_USE_MEM'&
=&& true,&
//显示内存开销
提示信息如下图:
2、页面Trace信息的自定义:\ThinkPHP\Tpl\PageTrace.tpl.php
自定义的方法一:在config.php的同级目录加上一个trace.php文件
& return array{
'当前的server信息'=&$_SERVER['REMOTE_ADDR'],
自定义的方法二:在Action方法中添加
$this-&trace('我很丑,但是我很温柔','5211314');
3、输出调试法:
& halt('aaaaaaa');//输出aaaaaa并且中断程序执行
4、模型调试:显示SQL语句
& $User=new Model('User');
& $User-&find(1);
$User-&getLastSql();//输出最后执行的一条SQL语句
5、日志记录\ThinkPHP\Lib\Think\Core\Log.class.php
config.php中设置
'LOG_RECORD'=&true,//开启了日志记录
'LOG_RECORD_LEVEL'=&array('EMERG','ALERT','ERROR'),
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。5720人阅读
1. Logger日志为什么不打印?
&答:(1)需要在RESIN_HOMG\lib目录下包含所用的日志包,如:log4j-1.2.8.jar,commons-logging.
&&&&(2)需要在WEB-INFO\classes\目录下必须包含:commons-logging.properties和log4j.properties这两个文件;
&&&&(3)commons-logging.properties文件中的内容如下:如果采用Log4J日志器那么必须写成:mons.logging.Log=mons.logging.impl.Log4JLogger
&&&&##set Log as Log4J
&&&&mons.logging.Log=mons.logging.impl.Log4JLogger
&&&&## set Log as SimpleLog
&&&&#mons.logging.Log=mons.logging.impl.SimpleLog
&&&(4)需要在web.xml中配置初始化Log4J:
&&&(5)在程充序使用有以下几种方式:
&&&第一种方式:
&&& importorg.apache.log4j.L
&&& privatestatic Logger logger = Logger.getLogger(LoginAction.class);&
&&& (&now enter LoginAction:execute() method!&);
&&&第二种方式:
&&& importorg.apache.log4j.C
&&& privatestatic& Categorylogger=Category.getInstance(LoginAction.class);
&&& (&now enter LoginAction:execute() method!&);
&&&第三种方式:
&&& mons.logging.L
&&& mons.logging.LogF
&&& privatestatic Log logger=LogFactory.getLog(LoginAction.class);
&&& (&now enter LoginAction:execute() method!&);
&&&*******************************************************************************************
&&&详情参见以下内容:
&&&一:介绍
log4j是jakarta的一个项目主要是为了调试使用的,为了不让是在程序中写很多System.out.println();
我个人觉得是一个不错的工具,程序调试好以后你可以关掉log4j.
你可以从下面的地址下载到ant,目前版本:1.13
&&&http://jakarta.apache.org/builds/jakarta-log4j/release/v1.1.3/
&&&log4j不需要安装,你只需要把log4j.jar,log4j-core.jar放在classpath中你就可以使用。
四:使用log4j
&&& 1:)copylog4j.jar,log4j-core.jar到classpath中,在tomcat4.03中你可以把它放在
&&&tomcat_home\common\lib目录下。
&&&2:设置属性文件
&&&log4j需要用到一个log4j.properties文件内容如下:
&&&log4j.properties
&&&=====================================
&&&log4j.rootCategory=, A1
&&&log4j.appender.A1.layout=org.apache.log4j.PatternLayout
&&&最简单的配置,如果希望很复杂,自己看文档。
&&&3:写启动文件
&&&log4j的初始化有几种方式,我下面只提供一种方式。
&&&InitServlet.java (一个servlet)
&&&==================================
&&& importjava.io.InputS
&&& importjava.io.IOE
&&& importjava.util.H
&&& importjava.util.L
&&& importjava.util.MissingResourceException;
&&& importjavax.servlet.RequestD
&&& importjavax.servlet.ServletE
&&& importjavax.servlet.UnavailableE
&&& importjavax.servlet.http.HttpS
&&& importjavax.servlet.http.HttpServletR
&&& importjavax.servlet.http.HttpServletR
&&& importjavax.servlet.http.HttpS
&&& importjavax.servlet.*;
&&& importjava.io.*;
&&& public classInitServlet&&&extends HttpServlet {
&&&&&&&protected String config = &/log4j.properties&;
&&&&&&&&public void init() throws ServletException {
&&&&&&&&&&&ServletContext sct = getServletContext();
&&&&&&&&&&&System.out.println(&[Log4j]:&&The Root Path: & + sct.getRealPath(&/&));
&&&&&&&&&&&System.out.println(&[Log4j]:&&InitServlet init start...&);
&&&&&&&&&&&org.apache.log4j.PropertyConfigurator.configure(sct.getRealPath(&/&)+ getServletConfig().getInitParameter(&log4j&));
&&&&&&&&&&&System.out.println(&[Log4j]:&&InitServlet init over.&);
&&&&&&&&public void doGet(HttpServletRequest request,
&&&&&&&&&&&&&&&&&&&&&&&&&HttpServletResponse response)
&&&&&&&&&&&&&&&&&&&&&&&&&throws IOException, ServletException {
&&&&&&&&&&&;
&&&&&&public void doPost(HttpServletRequest request,
&&&&&&&&&&&&&&&&&&&&&&&&&&HttpServletResponse response)
&&&&&&&&&&&&&&&&&&&&&&&&&&throws IOException, ServletException {
&&&&&&&&&&&;
&&&4:设置web.xml
&&&上面写的servlet的在AppServer启动是就要运行,所以你需要配置一下web.xml
&&&加上如下内容:
&&&&servlet&
&&&&&&servlet-name&init&/servlet-name&
&&&&&&servlet-class&com.InitServlet&/servlet-class&
&&&&&&&&init-param&
&&&&&&&&&&&&param-name&log4j&/param-name&
&&&&&&&&&&&&param-value&/log4j.properties&/param-value&
&&&&&&&&&&&&!--相对aplication的路径在ROOT/log4j.properties参照上面--&
&&&&&&&&/init-param&
&&&&&&&&load-on-startup&1&/load-on-startup&
&&&&&&/servlet&
&&&&&5:在程序中使用log4j;
&&&&&private static org.apache.log4j.Category log =
&&&&&&&org.apache.log4j.Category.getInstance(classname);
&&&&&&&//classname java文件名
&&&log.debug(&.........&);
&&&log.error(&.........&);
&&&具体的运用你可以看log4j的文档
&&&log4j.properties文件的内容为:
&&&_________________________________
log4j.rootLogger=INFO,console,file&&&&&&&&&&&&&&&&&&&&&&&&&&&&&注解:这里console,file都表示Appendername,可以随便启名,后面用的时候一定要与此名保此一致即可!
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.SimpleLayout
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=c:\system.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%t %p - %m%n
&&&commons-logging.properties文件的内容为:
&&&_______________________________________
##set Log as Log4J
mons.logging.Log=mons.logging.impl.Log4JLogger
## set Log as SimpleLog
#mons.logging.Log=mons.logging.impl.SimpleLog
另外:请注意:一个resin服务只支持一个日志文件,并且只能将日志文件放到c盘
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:897520次
积分:8901
积分:8901
排名:第1664名
原创:161篇
转载:287篇
评论:54条
(1)(1)(1)(7)(6)(8)(8)(5)(6)(12)(9)(27)(12)(138)(16)(24)(3)(1)(1)(1)(1)(11)(28)(26)(43)(53)

我要回帖

更多关于 app webview 调试 的文章

 

随机推荐