Java中log日志工具类--Java自学网

package com.util;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.app.common.manager.BaseManager;
import com.app.jtb.model.EfileArchive;
import com.app.jtb.model.EfileInfo;
import com.app.jtb.model.EfileList;
import com.app.jtb.model.SingleUser;
import com.app.permission.model.ActionInfo;
import com.app.permission.model.LogInfo;
import com.app.permission.model.User;
import com.app.permission.web.filter.LogData;


public class LogUtils {


 
 /**
  * 保存日志
  * @param request
  * @param response
  * @param o
  * @param archiveSort
  * @param opName
  * @param logClass
  * @return
  */
 public static boolean saveLogInfo(BaseManager baseManager, HttpServletRequest request,
   HttpServletResponse response, Object o, String archiveSort,
   String opName, String logClass) {

  String url = ((HttpServletRequest) request).getRequestURI();

  // 截取URL
  int index = url.indexOf("/");
  String actionString = url.substring(index);

  int indexEnd = url.lastIndexOf("?");

  if (indexEnd != -1) {
   actionString.substring(0, indexEnd);
  }

  HttpSession session = ((HttpServletRequest) request).getSession();
  // 从session中取得user信息
  User user = (User) session.getAttribute("user");
  String upperUrl = url.toUpperCase();

  if (user == null && upperUrl.indexOf("LOGIN.DO") == -1) {
   return true;
  }

  /* 将用户的URL地址,转为中文 */
  String urlName = "";
  
  Object oa = baseManager.findUniqueBy(ActionInfo.class, "actionUrl", url);
  if(oa != null){
   ActionInfo ai = (ActionInfo)oa;
   urlName = ai.getActionName();
  }

  Integer userId = user.getId(); // 用户编号
  if (userId == null) {
   userId = new Integer(0);
  }

  String realName = user.getRealName();// 真实姓名
  String username = user.getUsername(); // 用户名
  String ip = request.getRemoteAddr(); // iP地址
  String deptName = user.getDepartment().getDepartmentName();

  // 进行日志的封装
  LogInfo logInfo = new LogInfo();
  logInfo.setUserId(userId);
  logInfo.setUsername(realName);
  logInfo.setEnglishName(username);
  logInfo.setIp(ip);
  logInfo.setDeptName(deptName);
  logInfo.setTime(new java.util.Date());
  logInfo.setMessage(urlName);
  if (actionString.length() > 254) {
   actionString = actionString.substring(0, 254);
  }

  
  
  logInfo.setOpName(opName);
  logInfo.setLogClass(logClass);
  
  
  setObjectInfo(o, archiveSort, logInfo);

  setSingleUser(logInfo, request);
  
  logInfo.setUrl(actionString);
  
  // 写入数据库
  baseManager.saveObject(logInfo);
  return false;
 }

 private static void setObjectInfo(Object o, String archiveSort, LogInfo logInfo) {
  if (o != null) {
   if (o instanceof EfileArchive) {
    EfileArchive e = (EfileArchive) o;
    logInfo.setArchiveId(e.getArchiveId());
    logInfo.setArchiveLabel(e.getArchiveLabel());
    logInfo.setArchiveSort(archiveSort);
   } else if (o instanceof EfileList) {
    EfileList f = (EfileList) o;
    EfileArchive a = f.getEfileArchive();
    if(a != null){
     logInfo.setArchiveId(a.getArchiveId());
     logInfo.setArchiveLabel(a.getArchiveLabel());
    }
    logInfo.setFileId(f.getId());
    logInfo.setFileOrderId(f.getOrderNo());
    logInfo.setArchiveSort(archiveSort);
   } else if(o instanceof EfileInfo){
    EfileInfo l = (EfileInfo) o;
    logInfo.setFid(l.getId());
    logInfo.setFiTitle(l.getFileTitle());
    logInfo.setArchiveSort(archiveSort);
   }
  }
 }
 
 public static void setSingleUser(LogInfo logInfo, HttpServletRequest request){
  if(request.getSession().getAttribute("singleUser") != null){
   SingleUser singleUser = (SingleUser) request.getSession().getAttribute("singleUser");
   logInfo.setSearchUser(StringUtils.getNotNullString(singleUser.getUsername()));
   logInfo.setSearchDepartment(StringUtils.getNotNullString(singleUser.getDepartment()));
   logInfo.setSearchTel(StringUtils.getNotNullString(singleUser.getTel()));
  }
  //return logInfo;
 }
 
 

}

文章转载自  http://www.javalearns.com/Html/?1561.html

更多Java学习文章请访问  Java免费学习网 http://www.javalearns.com

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值