ec2ec5593d254fa7d45f45325c6ad04868bdfcb9.svn-base 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package com.chinacreator.process.util;
  2. import java.util.HashMap;
  3. import org.apache.log4j.Logger;
  4. /**
  5. * 写日志工具类,每间隔多长时间写一次日志,以减少日志量
  6. * @author xu.zhou
  7. * @date 20211101
  8. */
  9. public class WriteLogUtil {
  10. private static HashMap<String, Long> writeMap = new HashMap<String, Long>();
  11. private static long interval = 60L; //写日志问隔,默认60秒
  12. /**
  13. * 指定间隔时间写日志
  14. * @param logmsg 日志内容
  15. * @param loghandle 日志handle
  16. * @param logclass 要写日志的类
  17. * @param loginterval 写日志问隔,单位秒
  18. */
  19. public static void writeLong(String logmsg, Logger loghandle, String logclass, Long loginterval){
  20. try {
  21. long currtime = System.currentTimeMillis()/1000;
  22. if(writeMap.containsKey(logclass)){
  23. if(currtime - writeMap.get(logclass) > loginterval){
  24. writeMap.put(logclass, currtime);
  25. loghandle.info(logmsg);
  26. }
  27. }else{
  28. writeMap.put(logclass, currtime);
  29. }
  30. } catch (Exception e) {
  31. //e.printStackTrace();
  32. loghandle.error("【"+logclass+"】写日志出现异常,"+e.getMessage());
  33. }
  34. }
  35. /**
  36. * 问隔60秒写一次日志
  37. * @param logmsg 日志内容
  38. * @param loghandle 日志handle
  39. * @param logclass 要写日志的类
  40. */
  41. public static void writeLong(String logmsg, Logger loghandle, String logclass){
  42. try {
  43. long currtime = System.currentTimeMillis()/1000;
  44. if(writeMap.containsKey(logclass)){
  45. if(currtime - writeMap.get(logclass) > interval){
  46. writeMap.put(logclass, currtime);
  47. loghandle.info(logmsg);
  48. }
  49. }else{
  50. writeMap.put(logclass, currtime);
  51. }
  52. } catch (Exception e) {
  53. //e.printStackTrace();
  54. loghandle.error("【"+logclass+"】写日志出现异常,"+e.getMessage());
  55. }
  56. }
  57. }