package com.uas.platform.b2b.support;

import com.uas.platform.b2b.core.util.ContextUtils;
import com.uas.platform.b2b.core.util.PathUtils;
import com.uas.platform.b2b.model.UsageLog;
import com.uas.platform.b2b.service.UsageLogService;
import com.uas.platform.core.logging.BufferedLogger;

/**
 * 平台的异步日志记录的工具
 * 
 * @author yingp
 * 
 */
public class UsageBufferedLogger extends BufferedLogger<UsageLog> {

	public UsageBufferedLogger() {
		super(PathUtils.getFilePath(), UsageLog.class, ContextUtils
				.getBean(UsageLogService.class));
	}

	/**
	 * 记录平台使用日志
	 * 
	 * @param title
	 *            消息标题
	 * @param message
	 *            消息
	 */
	public void log(String title, String message) {
		log(new UsageLog(title, message, null, null, null));
	}

	/**
	 * 记录平台密码找回日志
	 * 
	 * @param title
	 *            消息标题
	 * @param message
	 *            消息
	 */
	public void log(String title, String message, Long userUU, String ip) {
		log(new UsageLog(title, message, userUU, ip, null, null));
	}

	/**
	 * 记录平台使用日志
	 * 
	 * @param title
	 *            消息标题
	 * @param message
	 *            消息
	 * @param description
	 *            消息详细描述
	 */
	public void log(String title, String message, String description) {
		log(new UsageLog(title, message, description, null, null));
	}

	/**
	 * 平台操作日志
	 *
	 * @param useruu 用户UU
	 * @param enuu 企业UU
	 * @param title 标题
	 * @param message 消息
	 * @param description 消息详情描述
	 */
	public void log(Long useruu, Long enuu, String title, String message, String description) {
		log(new UsageLog(useruu, enuu, title, message, description));
	}

	/**
	 * 记录平台使用日志
	 * 
	 * @param title
	 *            消息标题
	 * @param message
	 *            消息
	 * @param description
	 *            消息详细描述
	 * @param relativeCode
	 *            相关单据号
	 * @param relativeKey
	 *            相关单据主键
	 */
	public void log(String title, String message, String description,
			String relativeCode, Long relativeKey) {
		log(new UsageLog(title, message, description, relativeCode, relativeKey));
	}

}
