어디로가야하오
132
2019-03-14 11:56:33
6
383

자바 log4j를 멀티스레드 서버 환경에서 클라이언트별 로그를 생성해야되는데요..


기본적인 에러나 프로세스의 과정은 Error.log 나 Process.log 처럼 유일한 로그파일이다 보니 상관이없는데

클라이언트 개별 로그들은  클라이언트가 접속할때 각 클라이언트 스레드 ID를 식별해 로그파일을 

동적으로 생성하는데요 로그파일을 만드는거 자체는 문제가 안되는데 로그를 쓰는과정에서 

1,2,3번 클라이언트가 접속하고 1.log 2.log 3.log 가 생성되었을때 최초에 한두줄만 각 로그에 입력이

되다가 저 세개의 파일중 하나에만 로그가 다 들어가고있습니다... 클라이언트 개수와 상관없이 계속

어느 하나에만 집중되어 로그가 입력되는 현상이 일어나고있습니다.

log4j 와 멀티 스레드 환경에서 각 클라이언트별 로그를 생성하는 예제같은거를 구글링 해봐도 찾지를 못해

서 어려움을 겪고있습니다.... 

이런 문제 해결해보신분들은 어떻게 했는지 궁금합니다

0
0
  • 답변 6

  • zepinos
    19k
    2019-03-14 13:10:19
    웹서버인지 확실친 않지만...웹이라면 사용자 브라우져 별로 로그를 남기겠단 건가요???
    0
  • 어디로가야하오
    132
    2019-03-14 13:53:58 작성 2019-03-14 13:54:22 수정됨

    zepinos

    아 웹서버는 아니고 특정 장비들하고만 통신하는 서버입니다.
    그래서 각 장비별 통신에 대한 로그를 장비 이름별로 남겨야 해서요..

    1
  • 어쩌다
    5k
    2019-03-14 13:54:33

    정해진 숫자의 파일이 필요한거면 말씀하신대로는 쉽게 구현이 가능합니다.

    위의 예제대로 3개의 파일이 고정이라면 3개의 어펜더를 설정하면되는거니까요...


    그런데 가변적으로 수많은 파일이 생성되야 하는것이면 별도 로거를 만드시거나

    로거 코어를 커스터마이징 하셔야 할듯한대


    그런식의 요구조건이 지금까지 없어 경험은 해보지 못했네요

    0
  • 어쩌다
    5k
    2019-03-14 13:57:59

    변경은 쉽게 되긴하네요...

    https://devofhwb.tistory.com/82

    1
  • zepinos
    19k
    2019-03-14 13:58:10

    여러 아이디어가 있을 수 있겠지만, 역시나 자동화 처리 하려면 로깅 프레임워크 자체를 확장구현하거나 뜯어고쳐야 할 것 같습니다.

    1
  • 어디로가야하오
    132
    2019-03-21 13:15:32

    글 올려놓고 까먹고 있었네요 ... 여러 방식으로 시도해보다가 성공하긴 했습니다.

    다른 분들이 알려주신 방법은 아니지만 의외로 쉽게 해결이 됬습니다.

    감사합니다 

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.