All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.bestwu.logging.RequestLogging.kt Maven / Gradle / Ivy

package cn.bestwu.logging

import java.io.Serializable
import java.text.SimpleDateFormat
import java.util.*

/**
 * 日志模型
 *
 * @author Peter Wu
 */
class RequestLogging : Serializable {
    /**
     * 资源分类名
     */
    var resourceType: String? = null
    /**
     * 资源名
     */
    var resourceName: String? = null
    /**
     * 资源路径
     */
    var resourceUri: String? = null
    /**
     * uri上的变量
     */
    var uriVariables: Map? = null
    /**
     * 请求方法
     */
    var requestMethod: String? = null
    /**
     * 请求servletPath
     */
    var servletPath: String? = null
    /**
     * 请求头
     */
    var requestHeaders: Map>? = null
    /**
     * 响应头
     */
    var responseHeaders: Map>? = null
    /**
     * 响应状态码
     */
    var responseStatus: Int? = null
    /**
     * 响应内容
     */
    var responseBody: Any? = null
    /**
     * 请求参数,不含二进制流
     */
    var parameters: Map>? = null
    /**
     * 请求体,含二进制流
     */
    //--------------------------------------------
    var requestBody: Any? = null
    /**
     * 请求开始时间
     */
    var createdDate: Long? = System.currentTimeMillis()
    /**
     * 请求结束时间
     */
    var endDate: Long? = null
    /**
     * 请求客户端IP地址
     */
    var ipAddress: String? = null
    /**
     * 客户端设备描述
     */
    var device: String? = null
    /**
     * 异常追踪桟
     */
    var trace: String? = null
    /**
     * 客户ID
     */
    var username: String? = null

    //--------------------------------------------

    /**
     * 请求耗时,单位毫秒
     */
    val duration: Long
        get() = endDate!! - createdDate!!

    /**
     * @return 格式化后的请求开始时间
     */
    val createdDateStr: String
        get() = dateFormat.format(Date(createdDate!!))

    /**
     * @return 格式化后的请求结束时间
     */
    val endDateStr: String
        get() = dateFormat.format(Date(endDate!!))

    companion object {

        private const val serialVersionUID = 1L

        private val dateFormat = SimpleDateFormat(
                "yyyy-MM-dd HH:mm:ss.SSSZ")
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy