一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 詳解SSM框架下結合log4j、slf4j打印日志

詳解SSM框架下結合log4j、slf4j打印日志

2021-02-23 11:06javaobject Java教程

本篇文章主要介紹了詳解SSM框架下結合log4j、slf4j打印日志,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

本文主要介紹了詳解ssm框架下結合log4jslf4j打印日志,分享給大家,具體如下:

首先加入log4j和slf4j的jar包

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!-- 日志處理
  <!-- slf4j日志包-->
  <dependency>
   <groupid>org.slf4j</groupid>
   <artifactid>slf4j-api</artifactid>
   <version>1.7.21</version>
  </dependency>
  <dependency>
   <groupid>org.slf4j</groupid>
   <artifactid>slf4j-log4j12</artifactid>
   <version>1.7.21</version>
  </dependency>
  <!-- 引入log4j日志包-->
  <dependency>
  <groupid>log4j</groupid> -->
  <artifactid>log4j</artifactid>
  <version>1.2.16</version>
  </dependency>

mybatis內置的日志工廠提供日志功能,具體的日志實現有以下幾種工具:

  1. slf4j
  2. apache commons logging
  3. log4j 2
  4. log4j
  5. jdk logging

1、具體選擇哪個日志實現工具由mybatis的內置日志工廠確定。它會使用最先找到的(按上文列舉的順序查找)。 如果一個都未找到,日志功能就會被禁用。

不少應用服務器的classpath中已經包含commons logging,如tomcat和webshpere, 所以mybatis會把它作為具體的日志實現。記住這點非常重要。這將意味著,在諸如 websphere的環境中——websphere提供了commons logging的私有實現,你的log4j配置將被忽略。 這種做法不免讓人悲催,mybatis怎么能忽略你的配置呢?事實上,因commons logging已經存 在了,按照優先級順序,log4j自然就被忽略了!不過,如果你的應用部署在一個包含commons logging的環境, 而你又想用其他的日志框架,你可以通過在mybatis的配置文件mybatis-config.xml里面添加一項setting(配置)來選擇一個不同的日志實現。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?xml version="1.0" encoding="utf-8" ?>
<!doctype configuration
  public "-//mybatis.org//dtd config 3.0//en"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
 
 <!-- 用于輸出日志 log4j:log4j slf4j -->
 <settings>
  <setting name="logimpl" value="slf4j"/>
 </settings>
 
 <!-- 此文件可以為空文件, 但是必須要有這文件 -->
 
 <!-- plugins在配置文件中的位置必須符合要求,否則會報錯,順序如下: properties?, settings?, typealiases?,
  typehandlers?, objectfactory?,objectwrapperfactory?, plugins?, environments?,
  databaseidprovider?, mappers? -->
 <plugins>
  <!-- com.github.pagehelper為pagehelper類所在包名 -->
  <plugin interceptor="com.github.pagehelper.pagehelper">
   <!-- 4.0.0以后版本可以不設置該參數 -->
   <property name="dialect" value="mysql" />
   <!-- 該參數默認為false -->
   <!-- 設置為true時,會將rowbounds第一個參數offset當成pagenum頁碼使用 -->
   <!-- 和startpage中的pagenum效果一樣 -->
   <property name="offsetaspagenum" value="true" />
   <!-- 該參數默認為false -->
   <!-- 設置為true時,使用rowbounds分頁會進行count查詢 -->
   <property name="rowboundswithcount" value="true" />
   <!-- 設置為true時,如果pagesize=0或者rowbounds.limit = 0就會查詢出全部的結果 -->
   <!-- (相當于沒有執行分頁查詢,但是返回結果仍然是page類型) -->
   <property name="pagesizezero" value="true" />
   <!-- 3.3.0版本可用 - 分頁參數合理化,默認false禁用 -->
   <!-- 啟用合理化時,如果pagenum<1會查詢第一頁,如果pagenum>pages會查詢最后一頁 -->
   <!-- 禁用合理化時,如果pagenum<1或pagenum>pages會返回空數據 -->
<!--    <property name="reasonable" value="false" /> -->
   <!-- 3.5.0版本可用 - 為了支持startpage(object params)方法 -->
   <!-- 增加了一個`params`參數來配置參數映射,用于從map或servletrequest中取值 -->
   <!-- 可以配置pagenum,pagesize,count,pagesizezero,reasonable,orderby,不配置映射的用默認值 -->
   <!-- 不理解該含義的前提下,不要隨便復制該配置 -->
<!--    <property name="params" value="pagenum=pagehelperstart;pagesize=pagehelperrows;" /> -->
   <!-- 支持通過mapper接口參數來傳遞分頁參數 -->
   <property name="supportmethodsarguments" value="false" />
   <!-- always總是返回pageinfo類型,check檢查返回類型是否為pageinfo,none返回page -->
   <property name="returnpageinfo" value="none" />
  </plugin>
 </plugins>
 
</configuration>

logimpl可選的值有:slf4j、log4j、log4j2、jdk_logging、commons_logging、stdout_logging、no_logging 或者是實現了接口org.apache.ibatis.logging.log的類的完全限定類名, 并且這個類的構造函數需要是以一個字符串(string類型)為參數的。 (可以參考org.apache.ibatis.logging.slf4j.slf4jimpl.java的實現)

你根據需要調用如下的某一方法:

?
1
2
3
4
5
org.apache.ibatis.logging.logfactory.useslf4jlogging();
org.apache.ibatis.logging.logfactory.uselog4jlogging();
org.apache.ibatis.logging.logfactory.usejdklogging();
org.apache.ibatis.logging.logfactory.usecommonslogging();
org.apache.ibatis.logging.logfactory.usestdoutlogging();

如果的確需要調用以上的某個方法,請在其他所有mybatis方法之前調用它。另外,只有在相應日志實現中存在 的前提下,調用對應的方法才是有意義的,否則mybatis一概忽略。如你環境中并不存在log4j,你卻調用了 相應的方法,mybatis就會忽略這一調用,代之默認的查找順序查找日志實現。

2、配置web.xml

?
1
2
3
4
5
6
7
8
<!-- 加載log4j -->
 <context-param>
  <param-name>log4jconfiglocation</param-name>
  <param-value>classpath:log4j.properties</param-value>
 </context-param>
 <listener>
  <listener-class>org.springframework.web.util.log4jconfiglistener</listener-class>
 </listener>

3、只要在應用的classpath中創建一個名稱為log4j.properties的文件, 文件的具體內容如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
log4j.rootlogger=info,console,dailyfile
# todo 發布到阿里云記得添加,另外控制臺不輸出(只輸出warn或者error信息)
#info,console,dailyfile
 
log4j.logger.org.mybatis =debug
log4j.logger.com.itzixi.mapper=debug
 
log4j.appender.console=org.apache.log4j.consoleappender
log4j.appender.console.encoding=utf-8
log4j.appender.console.layout=org.apache.log4j.patternlayout
log4j.appender.console.layout.conversionpattern=%-d{yyyy-mm-dd hh:mm:ss,sss} [%t] [%l] - [%p] %m%n
#mybatis顯示sql語句日志配置
#log4j.logger.org.mybatis=debug
#log4j.logger.com.itzixi.mapper=debug
 
# 定期滾動日志文件,每天都會生成日志
log4j.appender.dailyfile=org.apache.log4j.dailyrollingfileappender
log4j.appender.dailyfile.encoding=utf-8
log4j.appender.dailyfile.threshold=info
# todo 本地日志地址,正式環境請務必切換為阿里云地址
#log4j.appender.dailyfile.file=c:/logs/itzixi-web/log.log4j
log4j.appender.dailyfile.file=/itzixi-disk1/logs/itzixi-web/log.log4j
log4j.appender.dailyfile.datepattern='.'yyyy-mm-dd
log4j.appender.dailyfile.layout=org.apache.log4j.patternlayout
log4j.appender.dailyfile.layout.conversionpattern=%-d{yyyy-mm-dd hh:mm:ss,sss} [%t] [%l] - [%p] %m%n
 
 
##顯示sql語句部分
#log4j.logger.com.ibatis=debug
#log4j.logger.com.ibatis.common.jdbc.simpledatasource=debug
#log4j.logger.com.ibatis.common.jdbc.scriptrunner=debug
#log4j.logger.com.ibatis.sqlmap.engine.impl.sqlmapclientdelegate=debug
#log4j.logger.java.sql.connection=debug
#log4j.logger.java.sql.statement=debug
#log4j.logger.java.sql.preparedstatement=debug

如圖當我們在運行進入debug時就有sql語句打印了

詳解SSM框架下結合log4j、slf4j打印日志

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/a8457013/p/7909780.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲精品无码久久不卡 | 国产精品福利 | 日本一道高清不卡免费 | 色综合久久综合网欧美综合网 | 99综合在线 | 赤坂丽女医bd无删减在线观看 | 国产黄色大片网站 | 小早川怜子亚洲综合中文字幕 | 小辣椒精品福利视频导航 | 国产精品视频二区不卡 | 久操久操久操 | 国产精品99久久 | 范冰冰a级一级特级毛片 | 日韩黄色影视 | 操大肥b| 99久久99热久久精品免费看 | 农村妇女野战bbxxx农村妇女 | 97伊人久久精品亚洲午夜 | 精品视频免费在线观看 | 狠狠干综合网 | 韩国三级年轻的小婊孑 | 国产肥老上视频 | jk制服喷水 | 亚洲国产情侣偷自在线二页 | 亚洲国产在线2o20 | 亚洲 欧美 中文 日韩 视频 | 色老板在线播放 | 粉嫩高中生第一次不戴套 | 二次元美女互摸隐私互扒 | 欧美成人手机 | 动漫女性扒开尿口羞羞漫画 | 午夜无码国产理论在线 | voyeur多毛厕所 | 午夜爽喷水无码成人18禁三级 | 亚洲欧洲日产国码天堂 | 成人国产精品一区二区不卡 | 色老头综合网 | 国内精品 大秀视频 日韩精品 | 亚洲丰满女人ass硕大 | 极品美女aⅴ高清在线观看 极品ts赵恩静和直男激战啪啪 | 精品视频国产 |