Log Level
TRACE : 가장 상세한 정보를 나타낼 때 사용한다.
DEBUG : 일반 정보를 상세히 나타낼 때 사용한다.
INFO : 일반 정보를 나타낼 때 사용한다.
WARN : 에러는 아니지만 주의할 필요가 있을 때 사용한다.
ERROR : 일반 에러가 일어 났을 때 사용한다.
FATAL : 가장 크리티컬한 에러가 일어 났을 때 사용한다.
Appender 종류
ConsoleAppender : 콘솔에 로그를 찍는 방법
FileAppender : 파일에 로그를 찍는 방법
RollingFileAppender : 여러개의 파일을 순회하면서 로그를 찍는 방법
SMTPAppender : 로그를 메일에 찍어 보내는 방법
DBAppender : 데이터베이스에 로그를 찍는 방법
기타 SocketAppender, SSLSocketAppender등이 있다
Logback
- 로그 담당. 자바에서 로깅을 위한 라이브러리. 스프링부트에서 기본으로 사용하고 있는 로깅 라이브러리.
- 다운로드 : https://logback.qos.ch/
slf4j-api.jar
logback-core.jar
logback-classic.jar
- Logback xml 설정
환경설정 관련 doc : https://logback.qos.ch/manual/configuration.html
logback.xml로 파일을 생성하면, 실행시 classpath의 root에 있으면 이 파일을 읽고 logback의 설정파일로 이용한다.
appender의 name을 설정한 후 root태그 하위에 appender-ref 태그로 해당값을 통해 연결해 설정할 수 있다.
Maven
- 자바에서 빌드 담당
왜 메이븐을 쓰는가 ? 자동 빌드를 해준다. 그래서 자바 자체에서 컴파일 해본 경험이 없는 개발자가 다수 존재한다. 툴의 도움없이도 개발이 가능해야한다.
Notepad로 java class를 생성하 고 cmd를 통해 javac로 컴파일 해보자
- Jar 파일은 쉽게 생각하면 압축파일. 아카이빙이 목적이다.
아카이빙이란 파일 전송을 위해 백업용, 보관용, 기타 다른 목적으로 한곳에 모아둔 파일. 여러가지의 파일을 하나로 묶어서 관리하기 편하게끔 묶은 것.
클래스로 실행 : java -cp com.test.클래스명.
-cp는 classpath
jar 파일로 바로 실행하고 싶은 경우
jar -c -f jar파일명.jar com\* (jar가 묶인 폴더들)
Jar로 실행 : java -cp 파일명.jar 패키지명.클래스명
별도의 라이브러리의 클래스패스를 추가하기
컴파일
javac -cp lib\logback-classic.jar; lib\logback-core.jar;lib\slf4g-api.jar com\test\Main.java
클래스 파일 실행
java -cp lib\logback-classic.jar; lib\logback-core.jar;lib\slf4g-api.jar com.test.Main
- Manifest 파일
JAR, WAR 및 EAR 파일의 META-INF 폴더 아래에 MANIFEST.MF 파일이 있다
모든 항목은 key – value 쌍. 헤더의 이름은 값과 콜론 (:)으로 구분된다.
매니페스트는 아카이브에 패키지 된 다른 파일에 대한 정보도 포함 할 수 있다.
매니페스트에 기록되는 파일 정보는 JAR 파일의 용도에 따라 달라진다. 기본 매니페스트 파일은 다른 파일에 대해 어떤 정보를 기록해야하는지에 대한 가정을하지 않으므로 한 줄에는 자체에 대한 데이터 만 포함.
JAR 파일로 번들로 제공되는 응용 프로그램 : 응용 프로그램이 JAR 파일에 번들로 제공되는 경우 Java Virtual Machine은 응용 프로그램의 main class를 알려야합니다. 진입점은 public static void main (String [] args) 메서드가 있는 클래스.
진입점 다음과 같은 일반 형식을 가진 Main-Class 헤더에 작성한다.
Main-Class: 패키지명.classname
다운로드 확장은 다른 JAR 파일의 매니페스트 파일에서 참조하는 JAR 파일.
애플릿, 응용 프로그램 또는 다른 확장의 매니페스트 파일에있는 Class-Path 헤더 필드에 지정됩니다. 클래스 – 경로 헤더는 다음과 같다.
Class-Path: lib\logback-classic.jar lib\logback-core.jar lib\slf4g-api.jar
Jar -c -m manifest.txt -f test.jar com\* logback.xml
Jar 파일을 만들어라
Manifest 옵션은 추가.
파일을 만들되 파일명은 test.jar
클래스파일이 추가 경로 com\*
Jar의 root 경로에 logback.xml이 생성됨
Reference
https://m.blog.naver.com/PostView.nhn?blogId=moonv11&logNo=60179970474&proxyReferer=https%3A%2F%2Fwww.google.com%2F
https://logback.qos.ch/manual/architecture.html>
https://codeday.me/ko/qa/20190313/48753.html>
'Dev > Java' 카테고리의 다른 글
[effective-java] 일반적인 프로그래밍 원칙 (0) | 2020.01.14 |
---|---|
[java] CSV 파싱하기 (0) | 2019.12.13 |
[java] JVM, JRE, JDK, 자바 메모리 구조 (0) | 2019.09.28 |
[java] HttpClient (1) | 2019.09.26 |
[java] on-heap 과 off-heap (0) | 2019.09.20 |