多线程记录本地数据库日志
来源:互联网 发布:综艺频道山东网络台 编辑:程序博客网 时间:2024/06/05 22:38
静态实例BusiLog类
import org.apache.log4j.Logger;import com.bean.LogInfoBean;import com.common.jdbc.interfaces.JdbcOperation;import com.common.web.HintInfoHunterThread;import com.manager.LogManager;@SuppressWarnings("static-access")public class BusiLog {//正常日志标识public static final String SUCCESS = "0";//异常常日志标识public static final String EXCEPTION = "1";// 单实例private static BusiLog busiLog;// 数据库操作对象private static JdbcOperation jdbcOperation;//构造方法private BusiLog(){busiLog = this; busiLog.logManager = this.logManager;}// 持久化private static LogManager logManager;/*** * 日志对象 */private static final Logger LOGGER = Logger.getLogger(BusiLog.class);public void busiLogInit() {}public static void log(LogInfoBean logInfoBean ){try{//取得单例线程池ThreadPool threadPool = ThreadPool.getInstance();//创建一个新的线程实例HintInfoHunterThread hunterThread = new HintInfoHunterThread(logInfoBean,logManager);//用线程池中的线程运行线程实例threadPool.executorService.execute(hunterThread);}catch(Exception e){LOGGER.error(e.getMessage());}}/** * 返回异常对象Throwable详细信息 * @param e Throwable */public static String getExceptionInfo(Throwable e){StringBuffer excepMesSb=new StringBuffer();excepMesSb.append(e.toString());StackTraceElement [] messages=e.getStackTrace();for(int i=0;i<messages.length;i++){excepMesSb.append("\n"+messages[i].toString());}Exception causeE=(Exception)e.getCause();if(null!=causeE){excepMesSb.append("\n"+causeE.toString());StackTraceElement [] causeEMes=causeE.getStackTrace();for(int i=0;i<causeEMes.length;i++){excepMesSb.append("\n"+causeEMes[i].toString());}}return excepMesSb.toString();}public void setLogManager(LogManager logManager) {this.logManager = logManager;}public void setJdbcOperation(JdbcOperation jdbcOperation){this.jdbcOperation = jdbcOperation;}}
线程池单例
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** * * 单例创建线程池线程安全的懒汉模式 * * @author roger * @version 2012-1-16 * @see ThreadPool * @since */public class ThreadPool { public ExecutorService executorService = null; private ThreadPool(){ executorService= Executors.newFixedThreadPool(20); } static class ThreadPoolHolder { static ThreadPool instance = new ThreadPool(); } public static ThreadPool getInstance() { return ThreadPoolHolder.instance; } }
BEAN对象LogInfoBean
数据库JDBC连接池JdbcOperation
数据入库线程对象HintInfoHunterThread
import java.util.Date;import org.apache.log4j.Logger;import com.bean.LogInfoBean;import com.manager.LogManager;/** * 用于记录日志的新线程 */public class HintInfoHunterThread extends Thread{private LogInfoBean logBeans;private LogManager logManager;private final Logger logger = Logger.getLogger(getClass());public HintInfoHunterThread(LogInfoBean logBean,LogManager logManage){super.setName("loginfo-insert-"+(new Date()).getTime());this.logBeans = logBean;this.logManager = logManage;}public void run (){logger.info("--------------**ThreadName:"+Thread.currentThread().getName()+"---------[start]----------------------------");if (null != logBeans){try{logManager.addLog(logBeans);}catch (Exception e){e.printStackTrace();}}logger.info("--------------**ThreadName:"+Thread.currentThread().getName()+"---------[end]----------------------------");}}
- 多线程记录本地数据库日志
- crash日志的本地记录
- App错误日志记录到本地
- log4j日志记录到数据库
- 一个多线程的日志记录DLL
- 在多线程应用程序中进行日志记录
- 支持多线程的日志记录类实现
- 多线程例子和游戏日志记录例子
- 从环信拉取消息记录,写入本地数据库
- log4j记录日志到数据库中
- 利用log4j将记录日志写入数据库
- 使用log4j 记录日志到数据库
- 操作数据库表,并作日志记录。
- log4j将记录日志保存到数据库
- log4j将记录日志保存到数据库
- log4j将记录日志保存到数据库
- springAOP日志记录数据库项目实例
- Log4Net记录日志到SQLServer数据库
- Java程序员从笨鸟到菜鸟之(四十九)细谈struts2(十一)OGNL表达式的基本语法和用法
- sql server 2000 sa 的密码修改
- 设置全屏显示以及横屏等属性
- 把文本内容写入文件
- 同步和异步的区别
- 多线程记录本地数据库日志
- 有用的函数-系统采集
- JAVA设计模式之装饰模式
- MySQL数据同步的方法
- 获取文件扩展名,文件名称的方法
- android获取窗口属性
- 百度测试二面
- 关于ORACLE数据泵
- [网页性能分析]利用Firfox,firbug,cssusage来分析CSS在网页中使用覆盖率