• logback 项目应用


    1、gradle引用:

    compile group: 'commons-logging', name: 'commons-logging', version: '1.1.3'
    compile group: 'ch.qos.logback', name: 'logback-core', version: '1.0.13'
    compile group: 'ch.qos.logback', name: 'logback-classic', version: '1.0.13'
    compile group: 'org.logback-extensions', name: 'logback-ext-spring', version: '0.1.1'
    compile group: 'org.slf4j', name: 'slf4j-api', version:'1.7.5'

    2、logback.xml:

    <?xml version="1.0" encoding="UTF-8" ?>
    <configuration>
        <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
            </encoder>
        </appender>
    
       <!-- 时间滚动输出 level为 DEBUG 日志 -->
        <appender name="file-debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>DEBUG</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY </onMismatch>
            </filter>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <FileNamePattern>${catalina.base}/export/data/logs/debug.%d{yyyy-MM-dd}.log</FileNamePattern>
                <MaxHistory>30</MaxHistory>
            </rollingPolicy>
            <encoder>
                <pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
            </encoder>
        </appender>
     
        <!-- 时间滚动输出 level为 INFO 日志 -->
        <appender name="file-info" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>INFO</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY </onMismatch>
            </filter>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <FileNamePattern>${catalina.base}/export/data/logs/info.%d{yyyy-MM-dd}.log</FileNamePattern>
                <MaxHistory>30</MaxHistory>
            </rollingPolicy>
            <encoder>
                <pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
            </encoder>
        </appender>
        
        <!-- 时间滚动输出 level为 INFO 日志 -->
        <appender name="file-error" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>ERROR</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY </onMismatch>
            </filter>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <FileNamePattern>${catalina.base}/export/data/logs/error.%d{yyyy-MM-dd}.log</FileNamePattern>
                <MaxHistory>30</MaxHistory>
            </rollingPolicy>
            <encoder>
                <pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
            </encoder>
        </appender>
        
        <!-- 很多人使用Mybatis的时候,控制台不能输出SQL语句,造成调试困难。只需要让DAO层的日志级别调整为DEBUG就可以了 -->
        <logger name="com.zhcx.*.*.mapper" level="DEBUG" />
        <logger name="com.zhcx.*.*.service.impl" level="DEBUG" />   
        <logger name="org.apache.activemq" level="ERROR" />
        <logger name="com.google.code" level="ERROR" />
        <logger name="net.rubyeye.xmemcached" level="ERROR" />
        <logger name="org.quartz.core" level="ERROR" />
        
    
        <!-- 指定项目可输出的最低级别日志 -->
        <root level="DEBUG">
            <appender-ref ref="console" />
            <appender-ref ref="file-debug" />
            <appender-ref ref="file-info" />
            <appender-ref ref="file-error" />
        </root>
    </configuration>

    3、java调用:

    package com.dayhro.role.controller;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import javax.servlet.http.HttpServletRequest;
    
    import org.apache.ibatis.session.RowBounds;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    import com.dayhr.web.util.PropertiesCommonUtil;
    import com.dayhro.auth.response.UserInfo;
    import com.dayhro.auth.util.UserUtil;
    import com.dayhro.common.base.Data;
    import com.dayhro.common.base.MessageResp;
    import com.dayhro.common.pagination.PageUtil;
    import com.dayhro.common.util.CommonUtils;
    import com.dayhro.common.util.UUIDUtil;
    import com.dayhro.role.entity.HroRole;
    import com.dayhro.role.param.HroRoleParam;
    import com.dayhro.role.response.HroRoleResp;
    import com.dayhro.role.service.IHroRoleService;
    
    /**
     * 
     * @ClassName:HroRoleController
     * @Description: 角色控制器
     * @author: 
     * @date:2016年9月1日 下午7:19:51 
     * @version
     */
    @Controller
    @RequestMapping("/hrorole")
    public class HroRoleController {
        
        protected final Logger log = LoggerFactory.getLogger(getClass());
        
        @Autowired
        private IHroRoleService hroRoleService; //角色信息
        
        /**
         * 
         * @Title: queryList 
         * @Description: 查询角色信息 
         * @param @param param
         * @param @param request
         * @param @return
         * @return Data
         * @throws
         */
        @ResponseBody
        @RequestMapping("/queryList")
        public Data queryList(HroRoleParam param, HttpServletRequest request){
            
            Data data = null;
            UserInfo user = UserUtil.getUser(request.getSession());
            param.setCorpId(user.getCorpId());
            param.setModelId(Long.valueOf(user.getCorpType()));
            
            try{
                
                int totalCount = hroRoleService.queryListCount(param); //查询角色总数
                
                // 获取偏移量offSet
                int offSet = PageUtil.setParameter(totalCount,param.getPageBean());
                // 获取每一页显示的条数
                int pageSize = Integer.valueOf(param.getPageBean().getPageSize());
                data = new Data(param.getPageBean());
                
                //排序处理,防止SQL注入
                if(!"".equals(param.getOrderBy()) && param.getOrderBy()!=null){
                    param.setOrderBy(PropertiesCommonUtil.getValue("/properties/order.properties", "hrorole."+param.getOrderBy()));
                    param.setSortType("ASC");
                }
                RowBounds row = new RowBounds(offSet, pageSize);
                List<HroRoleResp> list = hroRoleService.queryList(param, row); //查询角色信息
                
                data.setBeans(list);
            
            } catch (Exception e) {
                log.error("查询异常", e);
            }
        
            return data; 
        }
    }
  • 相关阅读:
    多边形游戏
    大整数乘法
    矩阵连乘
    最长公共子序列
    动态规划
    快速排序
    二分搜索技术
    动态规划基本要素
    合并排序
    最大子段和
  • 原文地址:https://www.cnblogs.com/mingyue1818/p/5978663.html
Copyright © 2020-2023  润新知