만쥬의 개발일기
article thumbnail
[intellij] - API 요청 IP 로그 남길 시 IPv4 설정
🛠️TOOL 2024. 2. 14. 17:11

서버로 API 요청을 보내는 IP들의 로그를 저장하고 싶은데, IP들이 IPv6로 찍혀 보기 불편한 경험이 있었다. 이를 intellij에서 다음 설정들을 통해 IPv4로 옵션을 바꿔줄 수 있었다. Run ➡️ Edit Configurations... Modify options ➡️ Add VM options 그리고 VM option에 다음 설정을 복붙한다. -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true 이후 실행하면 원하는대로 로그가 찍히는 것을 확인할 수 있다. reference https://gaemi606.tistory.com/entry/IntelliJ-IPv4-%EC%84%A4%EC%A0%95

[Python] - 파이썬 log 라이브러리 rich 사용법과 logging의 중복 로그 현상

이번에는 python의 로깅을 자세히 파고들어봤다. 지난번 tqdm에 이어서 파이썬 로깅 라이브러리인 rich를 실제 프로젝트에 적용해보았다. 우선 가상환경에 라이브러리를 설치한다. pip install rich 다음 명령어로 설치 여부를 확인해 줄 수 있다. python -m rich 로깅 포맷 logging 모듈을 사용할 때에는 로깅 메시지의 포맷을 커스터마이징 할 수 있다. 사용 가능한 어트리뷰트는 공식 문서에 자세히 나와있다. ex) "%(asctime)s - %(levelname)s — %(funcName)s:%(lineno)d — %(message)s" # 위 포매팅 설정 결과는 아래와 같다. # 2021-07-01 12:29:53,182 - INFO - :1 - hello world 로깅 핸..

article thumbnail
[Java] - log4j2를 이용한 로깅 설정

최근 가장 많이 하는 생각이 어떻게 해야 로그와 예외 처리를 잘 할 수 있을까에 대한 고민이다. 자바에는 여러 로깅 라이브러리가 있는데, 그 중에서 오늘은 log4j2를 사용해 로깅 설정을 해보자. log4j2는 다음 표에서 알 수 있듯이 Multi Thread 환경에서 비동기 로거의 경우 다른 로킹 프레임워크보다 많은 처리량과 짧은 대기 시간을 제공한다. 마침 멀티쓰레딩 프로그램에 사용할 예정이기에, 아주 적합하다고 볼 수 있다. 개발환경 Plain java java17 wsl2 - ubuntu18.04 의존성 추가 먼저 최신 log4j2에 대한 의존성을 build.gradle에 추가해준다. dependencies{ . . implementation 'org.apache.logging.log4j:log..

[Javascript] - Winston을 사용하여 node.js에서 로깅하는 법

자바스크립트 코드 작성시 로거의 필요성을 느껴 Winston이라는 라이브러리를 사용해 로깅을 해보자. 모듈 설치 npm install winston --save npm install winston-daily-rotate-file --save npm install moment npm install app-root-path Logger.js 작성 const appRoot = require('app-root-path'); // root 경로를 가져오기 위해 사용 var winston = require('winston'); // log 파일 작성 require('winston-daily-rotate-file'); // log 파일을 일자별로 생성하기 위해 사용 const moment = require('mome..

article thumbnail
[스마트팜] - forever로 실행한 애플리케이션 log 확인하기

서버를 배포중, 문제가 생겼을 때 에러를 확인하려면 반드시 log를 확인해야 한다. 하지만 node.js에서 forever로 실행할 경우, 콘솔에 찍은 에러는 확인이 불가능하기 때문에 반드시 따로 로그 파일을 생성해주어야한다. 물론 server.js에서 처리해주어도 되지만, 기존 콘솔에 찍히던 log들을 모두 옮겨주기도 귀찮고 테스트시에는 어차피 콘솔에 찍으며 하기 때문에, 콘솔에 찍히던 log또한 파일에 저장 후 확인 가능하도록 하였다. sudo forever start -w -o ../out.log -e ../err.log server.js 위와 같이 실행할경우, 기존 출력되던 로그들은 out.log 파일에, 오류 출력 로그들은 err.log에 정상적으로 저장된다. -w: 파일 변경을 감지하고 자동으..