/** * Copyright 2018-2020 stylefeng & fengshuonan (https://gitee.com/stylefeng) *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *

* http://www.apache.org/licenses/LICENSE-2.0 *

* Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package cn.stylefeng.guns.sys.core.log.factory; import cn.stylefeng.guns.sys.core.constant.state.LogSucceed; import cn.stylefeng.guns.sys.core.constant.state.LogType; import cn.stylefeng.guns.sys.core.log.LogManager; import cn.stylefeng.guns.sys.modular.system.entity.LoginLog; import cn.stylefeng.guns.sys.modular.system.entity.OperationLog; import cn.stylefeng.guns.sys.modular.system.mapper.LoginLogMapper; import cn.stylefeng.guns.sys.modular.system.mapper.OperationLogMapper; import cn.stylefeng.roses.core.util.SpringContextHolder; import cn.stylefeng.roses.core.util.ToolUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.TimerTask; /** * 日志操作任务创建工厂 * * @author fengshuonan * @date 2016年12月6日 下午9:18:27 */ public class LogTaskFactory { private static Logger logger = LoggerFactory.getLogger(LogManager.class); private static LoginLogMapper loginLogMapper = SpringContextHolder.getBean(LoginLogMapper.class); private static OperationLogMapper operationLogMapper = SpringContextHolder.getBean(OperationLogMapper.class); public static TimerTask loginLog(final Long userId, final String ip) { return new TimerTask() { @Override public void run() { try { LoginLog loginLog = LogFactory.createLoginLog(LogType.LOGIN, userId, null, ip); loginLogMapper.insert(loginLog); } catch (Exception e) { logger.error("创建登录日志异常!", e); } } }; } public static TimerTask loginLog(final String username, final String msg, final String ip) { return new TimerTask() { @Override public void run() { LoginLog loginLog = LogFactory.createLoginLog( LogType.LOGIN_FAIL, null, "账号:" + username + "," + msg, ip); try { loginLogMapper.insert(loginLog); } catch (Exception e) { logger.error("创建登录失败异常!", e); } } }; } public static TimerTask exitLog(final Long userId, final String ip) { return new TimerTask() { @Override public void run() { LoginLog loginLog = LogFactory.createLoginLog(LogType.EXIT, userId, null, ip); try { loginLogMapper.insert(loginLog); } catch (Exception e) { logger.error("创建退出日志异常!", e); } } }; } public static TimerTask bussinessLog(final Long userId, final String bussinessName, final String clazzName, final String methodName, final String msg) { return new TimerTask() { @Override public void run() { OperationLog operationLog = LogFactory.createOperationLog( LogType.BUSSINESS, userId, bussinessName, clazzName, methodName, msg, LogSucceed.SUCCESS); try { operationLogMapper.insert(operationLog); } catch (Exception e) { logger.error("创建业务日志异常!", e); } } }; } public static TimerTask exceptionLog(final Long userId, final Throwable exception) { return new TimerTask() { @Override public void run() { String msg = ToolUtil.getExceptionMsg(exception); OperationLog operationLog = LogFactory.createOperationLog( LogType.EXCEPTION, userId, "", null, null, msg, LogSucceed.FAIL); try { operationLogMapper.insert(operationLog); } catch (Exception e) { logger.error("创建异常日志异常!", e); } } }; } }