Apache Log4j

Apache Log4j:

是什么?

Log4j Apache下的一个可以控制日志输出的地方、格式、级别的开源项目。

主要组件:Loggers(记录器),Appenders(输出源),Layouts(布局,日志类型)。

Loggers:日志记录级别(从小到大)DEBUG < INFO < WARN < ERROR(常用),使用规则:只输出级别不低于设定级别的日志信息,一般项目中程序应用设定及数据库访问设定级别为debug

Appenders:日志输出的目的地ConsoleFiles

Layouts:输出风格htmlpattern(常用)、simplettcc

 怎么用?

        Xml文件配置、properties文件配置(常用,便于维护);

       properties文件为例:

① .配置根Logger

log4j.rootLogger = [ level ] , appenderName1, appenderName2, …

例如:log4j.rootLoggerINFO,A1,A2,A3

② .配置根Logger输出的目的地的日志的风格和明细

log4j.appender.appenderName = className(对应的输出类

log4j.appender.appenderName.layout =className(对应的布局风格类)(org.apache.log4j.PatternLayout常用)需同时配置其输出的格式

③ .配置其他的模块日志和级别

项目实例:

 

 

MAVEN项目管理,在pom文件中引入项目日志的依赖,如下:

Slf4j作为一个日志类接口,不负责具体的日志实现,只在编译时负责寻找合适的日志系统进行绑定,具体的实现由各日志类库来完成

 

 

SpringMVC拦截请求第一件事,就是拦截请求日志

 

 

 

调用日志拦截器,其中重写了3个方法,在项目中的使用

①  preHandle():这个方法在业务处理器处理请求之前被调用,用在请求开始日志打印;

② postHandle():这个方法在业务处理器处理完请求后,但是DispatcherServlet向客户端返回请求前被调用,在该方法中对用户请求request进行处理,用在打印请求页面基本信息;

③ afterCompletion():这个方法在DispatcherServlet完全处理完请求后被调用,用在请求结束日志打印和保存并清理占用资源。

 

 

 

 

参考:http://www.cnblogs.com/ITtangtang/p/3926665.html#3789597

参考:http://www.importnew.com/7450.html

参考:http://blog.csdn.net/u012385190/article/details/51437992

参考:http://blog.csdn.net/u012385190/article/details/51437992

Mysql数据关联查询resultMap的使用

一对一

级联属性封装结果集:

                     

<select id=”findMyData”  resultMap =”dataMap”>

Select  a.id,  a.name, a.age, b.id carId, b.brand, b.price  from User a ,Car b  where

a.id = b.userId  and  a.id=#{id}

</select>

<resultMap type="User"  id=" dataMap ">

     <id column="id"  property="id"/>

    <result column="name"  property="name" />

    <result column="age"  property="age" />

<result column ="carId" property ="myCar.id"/>

<result column =" brand " property ="myCar. brand "/>

<result column =" price  " property ="myCar. price  "/>

 </resultMap>

使用联合对象标签<association>封装结果集

<resultMap type="User"  id=" dataMap ">

     <id column="id"  property="id"/>

    <result column="name"  property="name" />

<result column="age"  property="age" />

<association  property  = “myCar”   javaType = “Car”>

<id column=" carId "  property="id"/>

<result column =" brand " property =" brand "/>

<result column =" price  " property =" price  "/>

</association>

</resultMap>

注意:<id column="id"  property="id"/> 这个 column   id   要和<id column=" carId "  property="id"/>分别取出,则不能相同,相同时只取第一个。

一对多

 

<select id=”findMyData”  resultMap =”dataMap”>

Select  a.id,   a.name,   a.age,   b.id  myCars.id,   b.brand   myCars.brand ,   b.price   myCars.price   

  from User a  left join Car b  on a.id = b.userId   

 where a.id=#{id}

</select>

<resultMap type="User"  id="dataMap">

     <id property="id" column="id"/>

    <result property="title" column="title"/>

    <result property="summary" column="summary"/>

    <result property="endDate" column="endDate"/>

    <collection property="myCars" ofType="Car" >

        <id property="id" column=" myCars.id "/>

        <result property=" brand " column=" myCars.brand "/>

        <result property=" price " column=" myCars.price "/>

    </collection>

 </resultMap>

posted @ 2018-01-06 11:55  偷电瓶养你  阅读(268)  评论(0)    收藏  举报