按照需求自定义日志输出

(本次采用的日志框架是Logback)
logback配置如下`<?xml version="1.0" encoding="UTF-8"?>


CRSwi-Inspection-WebServer

<!-- 日志记录器,日期滚动记录 -->
<appender name="FILELOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <Prudent>true</Prudent>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${LOG_PATH}/xxxxsystem/xxxx.%d{yyyy-MM-dd}.log</fileNamePattern>
        <MaxHistory>60</MaxHistory>
    </rollingPolicy>
    <!-- 日志文件的格式 -->
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
     <!--   <pattern>%d{yyyy.MM.dd HH:mm:ss}+%5level+%msg+++%n</pattern>-->
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
        <charset>utf-8</charset>
    </encoder>
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
        <level>info</level>
    </filter>
</appender>

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <!--encoder 默认配置为PatternLayoutEncoder-->
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
        <charset>utf-8</charset>
    </encoder>
    <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>debug</level>
    </filter>
</appender>
<!--自定义用户日志-->
<appender name="yhlog" class="ch.qos.logback.core.rolling.RollingFileAppender">
   <!-- <File>${LOG_PATH}/yhlog/xx.%d{yyyy-MM-dd}.log</File>-->
    <append>true</append>
    <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>${LOG_PATH}/test/xx_service_operation.%d{yyyy-MM-dd}.log</fileNamePattern>
        <MaxHistory>60</MaxHistory>
    </rollingPolicy>
    <encoder>
        <!--<pattern>%d{YYYY.MM.DD HH:mm:ss} %-5level %logger Line:%-3L - %msg%n</pattern>-->
        <pattern> %msg%n</pattern>
        <charset>utf-8</charset>
    </encoder>

</appender>
 <logger name="yhlog" level="INFO">
     <appender-ref ref="yhlog"/>
 </logger>
<logger name="org.springframework" level="WARN" />
<logger name="org.mybatis" level="INFO" />
<logger name="org.apache.ibatis" level="INFO" />

<!-- 生产环境下,将此级别配置为适合的级别,以免日志文件太多或影响程序性能 -->
<!--控制输出日志级别-->
<root level="debug">
    <appender-ref ref="FILELOG" />
    <!-- 生产环境将请stdout,testfile去掉 -->
    <appender-ref ref="STDOUT" />
</root>

//日志处理类如下`package com.example.demo;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.Date;

/**

  • Log工具类

  • @author

  • @ClassName:LogUtils.java

  • @FileName:com.wisesoft.common.utils.LogUtils

  • @date 2019年7月26日

  • modify history
    */
    public class LogsUtils {

    private final static Logger LOGGER = LoggerFactory.getLogger(“yhlog”);

    /**

    • context 长度限制
      /
      public static Integer CONTEXT_LENGTH = 128;
      /
      *
    • operationType 长度限制
      /
      public static Integer OPERATION_TYPE_LENGTH = 8;
      /
      *
    • 日志类型 用户操作日志
      /
      public static String LOG_TYPE_USER = “1”;
      /
      *
    • 日志类型 系统操作日志
      /
      public static String LOG_TYPE_SYS = “0”;
      /
      *
    • 日志级别 错误
      /
      public static String LOG_LV_ERROR = “1”;
      /
      *
    • 日志级别 警告
      /
      public static String LOG_LV_WARNING = “2”;
      /
      *
    • 日志级别 通知为系统日志使用
      /
      public static String LOG_LV_SYSTEM = “3”;
      /
      *
    • 日志级别 信息日志为用户操作日志记录
      /
      public static String LOG_LV_USER = “4”;
      /
      *
    • 日志操作者 业务系统后台运行的服务日志,默认为“YD”
      /
      public static String LOG_OPERATOR_AUTO_NAME = “YD”;
      /
      *
    • 成功
      /
      public static String LOG_SUCCESS = “成功+操作成功”;
      /
      *
    • 失败
      /
      public static String LOG_FAIL = “失败+操作失败”;
      /
      *
    • 操作对象标识
      /
      public static String LOG_OPERATOR_FLAG = “test”;
      /
      *
    • 操作对象类型
      */
      public static String LOG_OPERATOR_TYPE = “软件模块”;

    public static void logUser( String operator, String lv, String context, String operationObject, String operationType, String operationFlag, String operationObjectType, String result) {
    /* if(!check(lv,context,operationObject,operationType,result)){
    return;
    }*/
    String softName = “test”;
    String ip = “192.168.0.114”;
    if (ip != null) {

         LogBo log = new LogBo();
         SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
         String s = format.format(new Date());
         log.setTime(s);
         log.setType(LOG_TYPE_USER);
         log.setLv(lv);
         log.setContext(context);
         log.setSoftName(softName + "+cccc.service");
    
         log.setIp(ip);
         log.setOperator(operator);
         log.setOperationFlag(operationFlag);
         log.setOperationObjectType(operationObjectType);
         log.setOperationType(operationType);
         log.setOperationObject(operationObject);
         log.setResult(result);
         // log.setOperationObject(operationObject);
         LOGGER.info(log.toString());
     }
    

    }

    public static void logSystem(HttpServletRequest request, String operator, String lv, String context, String operationObject, String operationType, String operationFlag, String operationObjectType, String result) {
    /* if(!check(lv,context,operationObject,operationType,result)){
    return;
    }*/
    String softName = “test”;
    // String ip= IPAddressUtils.getServerIPAddr(request);;
    String ip = “192.168.0.114”;
    if (ip != null) {
    LogBo log = new LogBo();
    SimpleDateFormat format = new SimpleDateFormat(“yyyy.MM.dd HH:mm:ss”);
    String s = format.format(new Date());
    log.setTime(s);
    log.setType(LOG_TYPE_SYS);
    log.setLv(lv);
    log.setContext(context);
    log.setSoftName(softName + “ccv.service”);

         log.setIp(ip);
         log.setOperator("");
         log.setOperationFlag(operationFlag);
         log.setOperationObjectType(operationObjectType);
         log.setOperationType(operationType);
         log.setOperationObject(operationObject);
         log.setResult(result);
         // log.setOperationObject(operationObject);
         LOGGER.info(log.toString());
     }
    

    }

    /**

    • 日志参数校验
    • @param lv
    • @param context
    • @param operationObject
    • @param operationType
    • @param result
    • @return
      /
      private static boolean check(String lv, String context, String operationObject, String operationType, String result) {
      /
      if(StringUtils.isEmpty(lv) || StringUtils.isEmpty(context) || StringUtils.isEmpty(operationObject)
      || StringUtils.isEmpty(operationType) || StringUtils.isEmpty(result)){
      return false;
      }*/
      if (context.length() > CONTEXT_LENGTH) {
      return false;
      } else if (operationType.length() > OPERATION_TYPE_LENGTH) {
      return false;
      }
      return true;
      }

    public static void logformmethodUser(HttpServletRequest request, String operator, String lv, String operationObject, String result) {
    /* if(!check(lv,context,operationObject,operationType,result)){
    return;
    }*/

     String ip = "192.168.0.114";
     ;
     if (ip != null) {
         LogBo log = new LogBo();
         SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
         String s = format.format(new Date());
         log.setTime(s);
         log.setType(LOG_TYPE_USER);
         log.setLv(lv);
         log.setSoftName("asbd");
         log.setIp(ip);
         log.setOperator(operator);
         // log.setOperationType(operationType);
         log.setOperationObject(operationObject);
         log.setResult(result);
         // log.setOperationObject(operationObject);
     
         LOGGER.info(log.toString());
     }
    

    }

}

测试输出类package com.example.demo;

/**

  • @bz: LFL
  • @date 2020/7/7 7:18
    */
    public class logtest {
    public static void main(String[] args) {
    //String operator, String lv, String context, String operationObject, String operationType, String operationFlag, String operationObjectType, String result
    LogsUtils.logUser("/",“erro”,“我草”,“张三”,“xxx”,“xxxx”,“c成功”,“失败”);
    }
    }
    `

`

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值