/* * 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); } } }