블로그 이미지
Max.

calendar

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

Notice

'fluentd'에 해당되는 글 1

  1. 2017.04.11 데이터 생성
2017.04.11 13:13 개발관련

데이터 생성 방법은 기존의 Biz 로직에 어떤 영향도 주지 않는 범위내에서 처리해야 하는 조건으로 진행되어야 한다.

1. log 처리

1) 소스코드에서 로그 수집 준비 작업

  • log4j 설정 추가
    • # JSON =============================================================#
      log4j.appender.JSON=org.apache.log4j.DailyRollingFileAppender
      log4j.appender.JSON.DatePattern='.'yyyy-MM-dd
      log4j.appender.JSON.File=${catalina.base}/logs/fluentd-json.log
      log4j.appender.JSON.layout=com.max.log4j.layout.FluentDJsonLayout
  • dependency 추가
    • <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.2.4</version>
      </dependency>
  • log4j Layout 확장
    • public class FluentDJsonLayout extends Layout {
           
          @Override
          public String format(LoggingEvent le) {
              return le.getMessage().toString().replaceFirst("__timestamp__", le.timeStamp+"")+"\n";
          }
       
          @Override
          public void activateOptions() {
          }
       
          @Override
          public boolean ignoresThrowable() {
              return false;
          }
      }
  • json Generator 생성
    • public class JsonGeneratorByApplication {
           
          private Gson gson = null;
           
          public String execute(Map<String,Object> r) {
              gson = new GsonBuilder().create();
              return gson.toJson(r).toString();
          }
       
          public String execute(String string, String string2) {
              gson = new GsonBuilder().create();
              Map<String,Object> r = new HashMap<String,Object>();
              r.put("timestamp""__timestamp__");
              r.put(string, string2);
              return gson.toJson(r).toString();
          }
       
          public String execute(String string, int string2) {
              gson = new GsonBuilder().create();
              Map<String,Object> r = new HashMap<String,Object>();
              r.put("timestamp""__timestamp__");
              r.put(string, string2);
              return gson.toJson(r).toString();
          }
      }
  • 대상 클래스 로그 코드 생성 
    • if(logger.isDebugEnabled()){
          Map<String, Object> r = new HashMap<String, Object>();
          r.put("timestamp""__timestamp__");
          r.put("gsp", GSP);
          r.put("appId", appId);
          r.put("appVersion", appVersion);
          r.put("osName", osName);
          r.put("osVersion", osVersion);
          r.put("server", server);
       
          logger.debug("{}",jsonGenerator.execute(r));
      }
  • 결과 생성 로그


저작자 표시
신고
posted by Max.
TAG
prev 1 next