/*
|
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
|
*
|
* Redistribution and use in source and binary forms, with or without
|
* modification, are permitted provided that the following conditions are met:
|
*
|
* Redistributions of source code must retain the above copyright notice,
|
* this list of conditions and the following disclaimer.
|
* Redistributions in binary form must reproduce the above copyright
|
* notice, this list of conditions and the following disclaimer in the
|
* documentation and/or other materials provided with the distribution.
|
* Neither the name of the dreamlu.net developer nor the names of its
|
* contributors may be used to endorse or promote products derived from
|
* this software without specific prior written permission.
|
* Author: Chill 庄骞 (smallchill@163.com)
|
*/
|
|
package org.springblade.core.log.utils;
|
|
import org.springblade.core.launch.props.BladeProperties;
|
import org.springblade.core.launch.server.ServerInfo;
|
import org.springblade.core.log.model.LogAbstract;
|
import org.springblade.core.secure.utils.AuthUtil;
|
import org.springblade.core.tool.constant.BladeConstant;
|
import org.springblade.core.tool.utils.*;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
/**
|
* Log 相关工具
|
*
|
* @author Chill
|
*/
|
public class LogAbstractUtil {
|
|
/**
|
* 向log中添加补齐request的信息
|
*
|
* @param request 请求
|
* @param logAbstract 日志基础类
|
*/
|
public static void addRequestInfoToLog(HttpServletRequest request, LogAbstract logAbstract) {
|
if (ObjectUtil.isNotEmpty(request)) {
|
logAbstract.setTenantId(Func.toStrWithEmpty(AuthUtil.getTenantId(), BladeConstant.ADMIN_TENANT_ID));
|
logAbstract.setRemoteIp(WebUtil.getIP(request));
|
logAbstract.setUserAgent(request.getHeader(WebUtil.USER_AGENT_HEADER));
|
logAbstract.setRequestUri(UrlUtil.getPath(request.getRequestURI()));
|
logAbstract.setMethod(request.getMethod());
|
logAbstract.setParams(WebUtil.getRequestContent(request));
|
logAbstract.setCreateBy(AuthUtil.getUserAccount(request));
|
}
|
}
|
|
/**
|
* 向log中添加补齐其他的信息(eg:blade、server等)
|
*
|
* @param logAbstract 日志基础类
|
* @param bladeProperties 配置信息
|
* @param serverInfo 服务信息
|
*/
|
public static void addOtherInfoToLog(LogAbstract logAbstract, BladeProperties bladeProperties, ServerInfo serverInfo) {
|
logAbstract.setServiceId(bladeProperties.getName());
|
logAbstract.setServerHost(serverInfo.getHostName());
|
logAbstract.setServerIp(serverInfo.getIpWithPort());
|
logAbstract.setEnv(bladeProperties.getEnv());
|
logAbstract.setCreateTime(DateUtil.now());
|
if (logAbstract.getParams() == null) {
|
logAbstract.setParams(StringPool.EMPTY);
|
}
|
}
|
}
|