/fengchao/uumai-core/crawler-core/src/main/java/com/uumai/logs/UumaiLogUtil.java

https://github.com/kanxg/fengchao · Java · 94 lines · 75 code · 12 blank · 7 comment · 5 complexity · 8cc48b6e7b9e77ab639f17efb27c78dd MD5 · raw file

  1. package com.uumai.logs;
  2. import com.google.gson.Gson;
  3. import com.mongodb.BasicDBObject;
  4. import com.mongodb.DB;
  5. import com.mongodb.DBCollection;
  6. import com.uumai.crawer.util.MongoUtil;
  7. import com.uumai.crawer.util.UumaiProperties;
  8. import com.uumai.crawer.util.UumaiTime;
  9. import com.uumai.crawer2.CrawlerTasker;
  10. import com.uumai.dao.helper.Json2DBHelper;
  11. /**
  12. * Created by rock on 8/30/15.
  13. */
  14. public class UumaiLogUtil {
  15. MongoUtil mongoUtil=null;
  16. public void connect(){
  17. mongoUtil =new MongoUtil();
  18. }
  19. public UumaiLog createLogInstanceFromTasker(CrawlerTasker tasker){
  20. UumaiLog uumaiLog=new UumaiLog();
  21. uumaiLog.setTaskerName(tasker.getTaskerName());
  22. uumaiLog.setTaskerSeries(tasker.getTaskerSeries());
  23. uumaiLog.setTaskerOwner(tasker.getTaskerOwner());
  24. uumaiLog.setRunHost(UumaiProperties.getHostName());
  25. uumaiLog.setUrl(tasker.getUrl());
  26. uumaiLog.setRuntime(new UumaiTime().getNowString());
  27. uumaiLog.setResult(true);
  28. return uumaiLog;
  29. }
  30. public void createLogInstanceFromException(UumaiLog uumaiLog ,CrawlerTasker tasker,Exception e){
  31. uumaiLog.setResult(false);
  32. StringBuffer sb=new StringBuffer();
  33. sb.append(e.getMessage());
  34. StackTraceElement [] messages=e.getStackTrace();
  35. if(messages!=null){
  36. for(int i=0;i<messages.length;i++){
  37. sb.append("ClassName:" + messages[i].getClassName());
  38. sb.append("getFileName:"+messages[i].getFileName());
  39. sb.append("getLineNumber:" + messages[i].getLineNumber());
  40. sb.append("getMethodName:" + messages[i].getMethodName());
  41. sb.append("toString:"+messages[i].toString());
  42. }
  43. }
  44. uumaiLog.setErrMessage(sb.toString());
  45. uumaiLog.setProxy(tasker.getProxy().toString());
  46. }
  47. public void createLog(UumaiLog uumaiLog) {
  48. try {
  49. // if(tasker.isSavingLogs()||!uumaiLog.isResult()){
  50. Json2DBHelper helper = new Json2DBHelper();
  51. helper.store(new Gson().toJson(uumaiLog),"uumai_system_logs");
  52. // }
  53. //remove from back redis pool list
  54. } catch (Exception e) {
  55. e.printStackTrace(); // To change body of catch statement use
  56. // File | Settings | File Templates.
  57. }
  58. }
  59. public int getLogs(String taskerOwner,String taskerName,String taskerSeries){
  60. return this.getLogs(taskerOwner,taskerName,taskerSeries,null);
  61. }
  62. public int getLogs(String taskerOwner,String taskerName,String taskerSeries,String result) {
  63. BasicDBObject query = new BasicDBObject();
  64. query.append("taskerName",taskerName);
  65. query.append("taskerOwner",taskerOwner);
  66. query.append("taskerSeries",taskerSeries);
  67. if(result!=null){
  68. if("true".equals(result)){
  69. query.append("result",true);
  70. }else{
  71. query.append("result",false);
  72. }
  73. }
  74. DB db = mongoUtil.getDB();
  75. DBCollection collection = db.getCollection("uumai_system_logs");
  76. return collection.find(query).count();
  77. }
  78. public void close(){
  79. if(mongoUtil!=null)
  80. mongoUtil.close();
  81. }
  82. }