java中日志的若干问题

java中日志的若干问题

简单记录下做日志的几个问题:

1  明确思路 

明确调用什么接口以及所需传入的参数:

     如图接口描述:





2 编写的日志工具LogUtil

    2.1 上传参数到指定接口

code如下,仅供参考。参数自定,HttpClientUtils也是自己定义的。

import net.sf.json.JSONObject;
import org.apache.log4j.Logger;

import javax.servlet.http.HttpServletRequest;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;

public final class LogUtil {

	private static final Logger logger = Logger.getLogger(LogUtil.class);

	public static final int GAMEBOX_MANAGER_SYSTEM_ID = 1;
	public static final int APPSTORE_MANAGER_SYSTEM_ID = 2;

	//调用的日志记录接口
	private static final String url = "*********";

	public static void sendLog(int systemId, int  moduleId, String objectName, String objectId, String optType,
							   HttpServletRequest request) {
		try {
			Map<String, String> map = new HashMap<>();
			map.put("systemId", String.valueOf(systemId));
			map.put("moduleId", String.valueOf(moduleId));
			map.put("objectName", objectName);
			map.put("objectId", objectId);
			map.put("optType", optType);
			AdminUser adminUser = (AdminUser) request.getSession(true).getAttribute("adminUser");
			String optAccount = "unknown";
			if(adminUser != null) {
				optAccount = adminUser.getUsername();
			}
			map.put("optAccount", optAccount);
			DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			String optTimeStr = format.format(new Date());
			map.put("optTime", optTimeStr);

			String result = HttpClientUtils.httpGet(url, map);
			JSONObject json = JSONObject.fromObject(result);
			if (json.getInt("code") != 1) {
				logger.error("提交日志异常: " + result);
			}
		} catch (Exception e) {
			logger.error(e);
		}
	}

	public static void sendLog(int  moduleId, String objectName, String objectId, String optType,
							  HttpServletRequest request){
		sendLog(GAMEBOX_MANAGER_SYSTEM_ID, moduleId, objectName, objectId, optType, request);
	}

	private LogUtil() {
	}

}


HttpClientUtils的code如下参考:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.HeadMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity;
import org.apache.commons.httpclient.methods.multipart.Part;
import org.apache.commons.httpclient.params.HttpMethodParams;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.google.common.collect.Sets;

public final class HttpClientUtils {
	private static final Logger log = LoggerFactory.getLogger(HttpClientUtils.class);
	
	public static final String USER_AGENT = "HttpClient/3.1/PP";
	public static final int UNKNOWN_HTTP_CODE = 600;
	
	public static Long getLastModified(String urlAsStr){
		int code = 200;
		long timestamp = System.currentTimeMillis();
		try{
			URL url = new URL(urlAsStr); 
			URLConnection urlc = url.openConnection();
			return urlc.getLastModified();
		}catch(Exception ex){
			log.error("Fail to get last-modified: {}", new Object[]{urlAsStr}, ex);
		}
		return null;
	}
	
	public static final String httpGet(String url){
		HttpClient client = new HttpClient();
		client.getHttpConnectionManager().getParams().setConnectionTimeout(2000); 

		GetMethod method = new GetMethod(url);
		method.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"utf-8");
		method.addRequestHeader("User-Agent", USER_AGENT);
		long timestamp = System.currentTimeMillis();
		int code = UNKNOWN_HTTP_CODE;
		try {
			code = client.executeMethod(method);
			String msg = method.getResponseBodyAsString();
			return msg;
		} catch (HttpException e) {
			log.error("httpGet error with url: " + url);
		} catch (IOException e) {
			log.error("httpGet error with url: " + url);
		}
		return null;
	}
	
	public static final String httpGet(String url, Map<String, String> params){
		return httpGet(url, params, null);
	}
	public static final int httpGetReturnCode(String url, Map<String, String> params){
		return httpGetReturnCode(url, params, null);
	}
	public static final int httpGetReturnCode(String url){
		return httpGetReturnCode(url, null);
	}
	public static final String httpGetNTimes(String url, Map<String, String> params, int times){
		return httpGetNTimes(url, params, null, times);
	}
	
	public static final String httpGetNTimes(String url, Map<String, String> params, Map<String, String> headers, int times){
		for(int i = 0; i<times; ++i){
			String response = httpGet(url, params, headers);
			if(response != null){
				return response;
			}
		}
		return null;
	}
	
	public static final String httpPostNTimes(String url, Map<String, String> params, int times){
		return httpPostNTimes(url, params, null, times);
	}
	
	public static final String httpPostNTimes(String url, Map<String, String> params, Map<String, String> headers, int times){
		for(int i = 0; i<times; ++i){
			String response = httpPost(url, params, headers);
			if(response != null){
				return response;
			}
		}
		return null;
	}
	
	public static final Map<String, Object> httpGetNTimesToMap(String url, Map<String, String> params, int times){
		return httpGetNTimesToMap(url, params, null, times);
	}
	
	public static final Map<String, Object> httpGetNTimesToMap(String url, Map<String, String> params, Map<String, String> headers, int times){
		St
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值