摘要:本文使用環境如何使用導入包將官網提供的包導入項目配置文件在項目配置文件中配置如下內容即可生效生成日志文件運行項目后將在根目錄下生成的文件。
本文使用環境
win7
Idea 14.1.4
jfinal 2.0
1.jfinal如何使用log4ja.導入jar包
將官網提供的log4j.jar包導入項目
b.配置文件
在項目配置文件(project/src/log4j.properties)中配置如下內容即可生效:
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.生成日志文件
運行項目后將在project根目錄下生成myapp.log的文件。2.jfinal 異常記錄到log4j 2.1 擴展異常類ExceptionIntoLogInterceptor
package interceptor; import com.jfinal.aop.Interceptor; import com.jfinal.aop.Invocation; import com.jfinal.core.JFinal; import com.jfinal.log.Logger; /** * 異常處理日志 全局攔截器 * 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之后,因為放在之前的話,是會空指針 }catch (Exception e){ //log 處理 logWrite(invocation, e); }finally { //記錄日志到數據庫,暫未實現 try{ }catch (Exception ee){ } } } private void logWrite(Invocation inv,Exception e){ //開發模式 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注冊全局攔截
@Override public void configInterceptor(Interceptors interceptors){ //全局攔截器,對所有請求攔截 //添加控制層全局攔截器 //interceptors.addGlobalActionInterceptor(new GlobalActionInterceptor()); interceptors.addGlobalActionInterceptor(new ExceptionIntoLogInterceptor()); //添加業務層全局攔截器 //interceptors.addGlobalServiceInterceptor(new GlobalServiceInterceptor()); interceptors.addGlobalServiceInterceptor(new ExceptionIntoLogInterceptor()); //兼容老版jfinal寫法 //interceptors.add(new GlobalActionInterceptor()); }
啟用項目后,發生異常將記錄到日志文件。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64756.html
摘要:是國產的框架,由五大部分組成。本文通過一個例子上手,旨在熟悉中各組件的用法。指的是表名,指的是主鍵數據庫連接池使用的是,還支持。默認訪問方法,這點類似于如果之前有基礎,上手會非常快。映射在上使用了校驗攔截器,使用了權限攔截器。 JFinal是國產的MVC框架,由 Handler、Interceptor、Controller、Render、Plugin 五大部分組成。本文通過一個例子上手...
摘要:和沖突,去掉對支持,標記為棄用。初始化插件初始化插件設置為異步,默認同步,或者使用自定義線程池。為子類排序,數值越小越先執行,默認為異步執行,需要插件開啟或者自定義線程池。 說明 JFinal-event 2.x 參考 Spring 4.2.x 中 Event 的使用方式而生,為 JFinal 用戶帶來更多方便。其核心目標是深層次解耦,為您節約更多時間,去陪戀人、家人和朋友 :) 年初...
摘要:本文要來分享給大家程序員最常用的日志框架組件。沒有基礎的同學也不要著急,這套教程覆蓋了目前所有的日志框架,只要你學,就一定用得到,先收藏,以備不時之需。 作為一名Java程序員,我們開發了很多Java應用程序,包括桌面應用、WEB應用以及移動應用。然而日志系統是一個成熟Java應用所必不可少的。在開發和調試階段,日志可以幫...
摘要:今天在配置日志的時候,發現日志重復打印的問題。把配置文件修改成如下日志控制臺日志級別日志級別日志級別日志通過以上配置模板即可解決各級別日志重復打印的問題。 今天在配置Log4j日志的時候,發現日志重復打印的問題。網上查了很多資料,發現介紹Log4j配置的文章數量不少,但提到這個問題的文章卻寥寥,解決了自己的問題以后,趕緊記錄一下。 原文地址:http://www.jianshu.com...
摘要:建議只使用四個級別,優先級從高到低分別是。比如在這里定義了級別,只有等于及高于這個級別的才進行處理,則應用程序中所有級別的日志信息將不被打印出來??赏瑫r指定多個輸出目的地。 一直感覺到log4j是使用比較混亂,今天抽空整理一下,以后方便使用 一、引用apache.log4j 使用maven進行lo4j的引用 log4j log4j 1.2.17 其他版本也...
閱讀 1628·2021-10-12 10:11
閱讀 3746·2021-09-03 10:35
閱讀 1438·2019-08-30 15:55
閱讀 2122·2019-08-30 15:54
閱讀 992·2019-08-30 13:07
閱讀 1003·2019-08-30 11:09
閱讀 568·2019-08-29 13:21
閱讀 2644·2019-08-29 11:32