成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

jfinal 日志log4j使用

Little_XM / 2703人閱讀

摘要:本文使用環(huán)境如何使用導(dǎo)入包將官網(wǎng)提供的包導(dǎo)入項(xiàng)目配置文件在項(xiàng)目配置文件中配置如下內(nèi)容即可生效生成日志文件運(yùn)行項(xiàng)目后將在根目錄下生成的文件。

本文使用環(huán)境

win7

Idea 14.1.4

jfinal 2.0

1.jfinal如何使用log4j

a.導(dǎo)入jar包

將官網(wǎng)提供的log4j.jar包導(dǎo)入項(xiàng)目

b.配置文件

在項(xiàng)目配置文件(project/src/log4j.properties)中配置如下內(nèi)容即可生效:

log4j.rootLogger=INFO, stdout, file
log4j.appender.stdout.Target=System.out
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n

# Output to the File
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=./myapp.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n

# Druid
log4j.logger.druid.sql=warn,stdout
log4j.logger.druid.sql.DataSource=warn,stdout
log4j.logger.druid.sql.Connection=warn,stdout
log4j.logger.druid.sql.Statement=debug,stdout
log4j.logger.druid.sql.ResultSet=warn,stdout

c.生成日志文件

運(yùn)行項(xiàng)目后將在project根目錄下生成myapp.log的文件。
2.jfinal 異常記錄到log4j 2.1 擴(kuò)展異常類(lèi)ExceptionIntoLogInterceptor
package interceptor;

import com.jfinal.aop.Interceptor;
import com.jfinal.aop.Invocation;
import com.jfinal.core.JFinal;
import com.jfinal.log.Logger;

/**
 * 異常處理日志 全局?jǐn)r截器
 * Created by rener on 2015/12/7.
 */
public class ExceptionIntoLogInterceptor implements Interceptor {

    private static final Logger log = Logger.getLogger(ExceptionIntoLogInterceptor.class);

    @Override
    public  void intercept(Invocation invocation){
        //Controller controller=invocation.getController();
        //HttpServletRequest request=controller.getRequest();
        try{
            invocation.invoke(); //一定要注意,把處理放在invoke之后,因?yàn)榉旁谥暗脑?huà),是會(huì)空指針
        }catch (Exception e){
            //log 處理
            logWrite(invocation, e);
        }finally {
            //記錄日志到數(shù)據(jù)庫(kù),暫未實(shí)現(xiàn)
            try{

            }catch (Exception ee){

            }
        }


    }


    private void logWrite(Invocation inv,Exception e){
        //開(kāi)發(fā)模式
        if (JFinal.me().getConstants().getDevMode()){
            e.printStackTrace();
        }
        StringBuilder sb =new StringBuilder("
---Exception Log Begin---
");
        sb.append("Controller:").append(inv.getController().getClass().getName()).append("
");
        sb.append("Method:").append(inv.getMethodName()).append("
");
        sb.append("Exception Type:").append(e.getClass().getName()).append("
");
        sb.append("Exception Details:");
        log.error(sb.toString(),e);

    }
}
2.2 配置AppConfig.java中的configInterceptor注冊(cè)全局?jǐn)r截
 @Override
    public void configInterceptor(Interceptors interceptors){
        //全局?jǐn)r截器,對(duì)所有請(qǐng)求攔截

        //添加控制層全局?jǐn)r截器
        //interceptors.addGlobalActionInterceptor(new GlobalActionInterceptor());
        interceptors.addGlobalActionInterceptor(new ExceptionIntoLogInterceptor());
        //添加業(yè)務(wù)層全局?jǐn)r截器
        //interceptors.addGlobalServiceInterceptor(new GlobalServiceInterceptor());
        interceptors.addGlobalServiceInterceptor(new ExceptionIntoLogInterceptor());

        //兼容老版jfinal寫(xiě)法
        //interceptors.add(new GlobalActionInterceptor());
    }

啟用項(xiàng)目后,發(fā)生異常將記錄到日志文件。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/64756.html

相關(guān)文章

  • 快速上手JFinal

    摘要:是國(guó)產(chǎn)的框架,由五大部分組成。本文通過(guò)一個(gè)例子上手,旨在熟悉中各組件的用法。指的是表名,指的是主鍵數(shù)據(jù)庫(kù)連接池使用的是,還支持。默認(rèn)訪(fǎng)問(wèn)方法,這點(diǎn)類(lèi)似于如果之前有基礎(chǔ),上手會(huì)非常快。映射在上使用了校驗(yàn)攔截器,使用了權(quán)限攔截器。 JFinal是國(guó)產(chǎn)的MVC框架,由 Handler、Interceptor、Controller、Render、Plugin 五大部分組成。本文通過(guò)一個(gè)例子上手...

    susheng 評(píng)論0 收藏0
  • JFinal-event v2.3.0 發(fā)布,簡(jiǎn)化 Event 事件類(lèi)

    摘要:和沖突,去掉對(duì)支持,標(biāo)記為棄用。初始化插件初始化插件設(shè)置為異步,默認(rèn)同步,或者使用自定義線(xiàn)程池。為子類(lèi)排序,數(shù)值越小越先執(zhí)行,默認(rèn)為異步執(zhí)行,需要插件開(kāi)啟或者自定義線(xiàn)程池。 說(shuō)明 JFinal-event 2.x 參考 Spring 4.2.x 中 Event 的使用方式而生,為 JFinal 用戶(hù)帶來(lái)更多方便。其核心目標(biāo)是深層次解耦,為您節(jié)約更多時(shí)間,去陪戀人、家人和朋友 :) 年初...

    ashe 評(píng)論0 收藏0
  • 強(qiáng)推!大牛程序員必備的Java日志框架,性能無(wú)敵

    摘要:本文要來(lái)分享給大家程序員最常用的日志框架組件。沒(méi)有基礎(chǔ)的同學(xué)也不要著急,這套教程覆蓋了目前所有的日志框架,只要你學(xué),就一定用得到,先收藏,以備不時(shí)之需。 作為一名Java程序員,我們開(kāi)發(fā)了很多Java應(yīng)用程序,包括桌面應(yīng)用、WEB應(yīng)用以及移動(dòng)應(yīng)用。然而日志系統(tǒng)是一個(gè)成熟Java應(yīng)用所必不可少的。在開(kāi)發(fā)和調(diào)試階段,日志可以幫...

    zebrayoung 評(píng)論0 收藏0
  • Log4j各級(jí)別日志重復(fù)打印的問(wèn)題

    摘要:今天在配置日志的時(shí)候,發(fā)現(xiàn)日志重復(fù)打印的問(wèn)題。把配置文件修改成如下日志控制臺(tái)日志級(jí)別日志級(jí)別日志級(jí)別日志通過(guò)以上配置模板即可解決各級(jí)別日志重復(fù)打印的問(wèn)題。 今天在配置Log4j日志的時(shí)候,發(fā)現(xiàn)日志重復(fù)打印的問(wèn)題。網(wǎng)上查了很多資料,發(fā)現(xiàn)介紹Log4j配置的文章數(shù)量不少,但提到這個(gè)問(wèn)題的文章卻寥寥,解決了自己的問(wèn)題以后,趕緊記錄一下。 原文地址:http://www.jianshu.com...

    tylin 評(píng)論0 收藏0
  • spring進(jìn)步 -- log4j的學(xué)習(xí)

    摘要:建議只使用四個(gè)級(jí)別,優(yōu)先級(jí)從高到低分別是。比如在這里定義了級(jí)別,只有等于及高于這個(gè)級(jí)別的才進(jìn)行處理,則應(yīng)用程序中所有級(jí)別的日志信息將不被打印出來(lái)??赏瑫r(shí)指定多個(gè)輸出目的地。 一直感覺(jué)到log4j是使用比較混亂,今天抽空整理一下,以后方便使用 一、引用apache.log4j 使用maven進(jìn)行l(wèi)o4j的引用 log4j log4j 1.2.17 其他版本也...

    edgardeng 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<