关于log

之前很少用到log日志,一方面是jdev的内置服务器调试非常方便,不用log来检查错误,另一面是自己比较懒,也懒的去动它.. 不过今天工作中遇到 一问题,让我不得不去看下log,然后去用它. 结果,引出了好些技术点,有些懂,有些不懂,反正似懂非懂, 记录下来,以后慢慢品味.

1,

程序要从开发环境搬到测试环境,oc4j到tomcat,本来本地ok的一个功能在tomcat上就挂了。所以要用log来调试了。凭着<servlet >书籍上的印象,我记得servletContext有一log方法,可以记录日志.于是往这上面靠~

      FacesContext facesContext = FacesContext.getCurrentInstance();
      ExternalContext eContext=FacesContext.getCurrentInstance().getExternalContext();

             //((FacesServlet)this).getServletConfig().getServletContext().log("/cos"+url+"?init=true");
            eContext.log("/cos"+url+"?init=true"+"helloo----------------------------------");

本来以为jsf中facescontext应该也是个servletContext,于是把它强制转化,结果class转换错误;后来又看了一下api,发现ExternalContext 类有那log函数,幸喜,估计是实现了servletcontext中log. 在看一原码,

    public void log(String message) {
        _servletContext.log(message);
    }

果然,,, 但是新的问题又出来了,

public ServletExternalContextImpl(ServletContext servletContext,
                                      ServletRequest servletRequest,
                                      ServletResponse servletResponse)
    {
        _servletContext = servletContext;

.......

}

这里的servletContext应该一具体类的实现,那么这个具体类应该在哪里给出了呢。我找来找去找不到. 且当他是容器本身实现了servletContext吧,而没有表达给我们看。

2,

import org.apache.commons.logging.LogFactory;
import org.apache.commons.logging.Log;

    private static final Log log = LogFactory.getLog(ServletExternalContextImpl.class);

在log的时候,一般都用了这个包,估计web中的log方法,应该都是这个包来实现的吧.包括log4j等等。..

所以自己在程序中,也可以采用Log 或Logger类来记录日志信息.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值