Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Study] Logging #64

Open
chanmin97 opened this issue May 1, 2024 · 2 comments
Open

[Study] Logging #64

chanmin97 opened this issue May 1, 2024 · 2 comments
Assignees
Labels

Comments

@chanmin97
Copy link
Contributor

chanmin97 commented May 1, 2024

Logging 공부링크

개발할땐 디버그
운영할땐 인포 쓰래요

사용법

application.properties에서 로그 레벨 설정 후 ex (logging.level.hello.springmvc=debug)

@slf4j 붙이고
log.trace("trace log={}", name);
log.debug("debug log={}", name);
log.info(" info log={}", name);
log.warn(" warn log={}", name);
log.error("error log={}", name);
// 이런식으로 원하는 로그 찍어가며 사용하면 됨

//로그를 사용하지 않아도 a+b 계산 로직이 먼저 실행됨, 이런 방식으로 사용하면 X
log.debug("String concat log=" + name);

// 로그 제대로 사용하는법

  • log.debug("data="+data)
    로그 출력 레벨을 info로 설정해도 해당 코드에 있는 "data="+data가 실제 실행이 되어 버린다. 결과적으
    로 문자 더하기 연산이 발생한다.
  • log.debug("data={}", data)
    로그 출력 레벨을 info로 설정하면 아무일도 발생하지 않는다. 따라서 앞과 같은 의미없는 연산이 발생하지
    않는다.

// 로그 사용시 장점
쓰레드 정보, 클래스 이름 같은 부가 정보를 함께 볼 수 있고, 출력 모양을 조정할 수 있다.
로그 레벨에 따라 개발 서버에서는 모든 로그를 출력하고, 운영서버에서는 출력하지 않는 등 로그를 상황에 맞게
조절할 수 있다.
시스템 아웃 콘솔에만 출력하는 것이 아니라, 파일이나 네트워크 등, 로그를 별도의 위치에 남길 수 있다. 특히 파
일로 남길 때는 일별, 특정 용량에 따라 로그를 분할하는 것도 가능하다.
성능도 일반 System.out보다 좋다. (내부 버퍼링, 멀티 쓰레드 등등) 그래서 실무에서는 꼭 로그를 사용해야 한

@chanmin97 chanmin97 added the study label May 1, 2024
@chanmin97 chanmin97 self-assigned this May 1, 2024
@kkho9654
Copy link
Contributor

kkho9654 commented May 2, 2024

확인했습니다 감사합니다

@wintiger98
Copy link
Contributor

감사합니다 확인했습니다

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: No status
Development

No branches or pull requests

3 participants