cb-log is a logger library for the Cloud-Barista Multi-Cloud Framework.
[NOTE]
cb-log is currently under development.
So, we do not recommend using the current release in production.
Please note that the functionalities of cb-log are not stable and secure yet.
If you have any difficulties in using cb-log, please let us know.
(Open an issue or Join the cloud-barista Slack)
- 배포환경: Ubuntu 18.04, Docker 19.03, Go 1.15
- 개발환경: Ubuntu 20.04, Ubuntu 18.04, Debian 10.6, macOS Catalina 10.15, Android 8.1
- latest Docker, latest Go
- Go 설치
$ sudo apt update $ sudo apt install -y make gcc $ sudo snap install go --classic
- cb-log 설치 방법
- 모듈 다운로드 방법(Go Module mode, default)
- cb-log 응용 개발
- 응용 예시:
$ wget https://raw.githubusercontent.com/cloud-barista/cb-log/master/test/test.go
- 응용 예시:
- 모듈 초기화:
$ go mod init test.go
- 모듈 다운로드:
$ go mod tidy
- 다운로드 위치 예시:
/home/ubuntu/go/pkg/mod/github.com/cloud-barista/[email protected]
- cb-log 응용 개발
- 소스 다운로드 방법(Old GOPATH mode):
- 소스 다운로드:
$ go get -u -v github.com/cloud-barista/cb-log
- 다운로드 위치 예시:
/home/ubuntu/go/src/github.com/cloud-barista/cb-log
- 소스 다운로드:
- 모듈 다운로드 방법(Go Module mode, default)
-
설정 정보
Configurations Descriptions Default loopcheck 설정값 변경시 자동 반영 여부 설정.
설정값: true, falsefalse loglevel 로그 레벨 설정.
설정값: trace, debug, info, warn, error, fatal, panicinfo logfile 로그 파일 출력 여부 설정.
설정값: true, falsetrue logfileinfo: ----- 이하 logfile true 일때 유효 ----- filename 로그를 저장할 파일 path 및 이름.
설정값: {path}logfilename./log/cblogs.log maxsize 개별 로그 파일 크기.
설정값: integer #megabytes10 maxbackups 로그 파일 개수.
설정값: integer #number50 maxage 로그 파일 유지 기간.
설정값: integer #days31 -
설정 파일 예시
$ wget -r -nH --cut-dirs=3 https://raw.githubusercontent.com/cloud-barista/cb-log/master/conf/log_conf.yaml
$ vi ./conf/log_conf.yaml
#### Config for CB-Log Lib. #### cblog: ## true | false loopcheck: false # This temp method for development is busy wait. cf) cblogger.go:levelSetupLoop(). ## trace | debug | info | warn/warning | error | fatal | panic loglevel: error # If loopcheck is true, You can set this online. ## true | false logfile: true ## Config for File Output ## logfileinfo: filename: ./log/cblogs.log maxsize: 10 # megabytes maxbackups: 50 maxage: 31 # days
-
설정 적용 방법
- 서버 재가동: loopcheck=false 설정시
- 자동 반영: loopcheck=true 설정시
-
설정파일 위치 지정 방법
- 환경변수 사용 방법:
- 환경변수 CBLOG_ROOT 설정:
(ex) export CBLOG_ROOT=$HOME/go/src/github.com/cloud-barista/cb-log
- 설정파일 위치: $CBLOG_ROOT/conf/log_conf.yaml
- 환경변수 CBLOG_ROOT 설정:
- 설정파일 지정 방법:
-
설정파일 생성:
(ex) /etc/my_conf.yaml
-
코드 내 설정파일 위치 설정: GetLoggerWithConfigPath() 이용
import ( "github.com/cloud-barista/cb-log" "github.com/sirupsen/logrus" ) var cblogger *logrus.Logger func init() { // cblog is a global variable. cblogger = cblog.GetLoggerWithConfigPath("MY_PROJ", "/etc/my_conf.yaml") }
-
- 환경변수 사용 방법:
- 기본 사용 예시: GetLogger(), SetLevel(), GetLevel(), WithFields()
- 대상 소스: https://github.com/cloud-barista/cb-log/blob/master/test/test.go
- 실행 및 결과:
$ export CBLOG_ROOT=$HOME/go/src/github.com/cloud-barista/cb-log $ cd $CBLOG_ROOT/test $ go run test.go # setup cb-log with $CBLOG_ROOT/conf/log_conf.yaml ####LogLevel: info [CB-SPIDER].[INFO]: 2021-02-14 11:16:49 test.go:24, main.main() - Log Info message [CB-SPIDER].[WARNING]: 2021-02-14 11:16:49 test.go:25, main.main() - Log Waring message [CB-SPIDER].[ERROR]: 2021-02-14 11:16:49 test.go:26, main.main() - Log Error message [CB-SPIDER].[ERROR]: 2021-02-14 11:16:49 test.go:27, main.main() - Log Error message:internal error message ####LogLevel: warning [CB-SPIDER].[WARNING]: 2021-02-14 11:16:49 test.go:32, main.main() - Log Waring message [CB-SPIDER].[ERROR]: 2021-02-14 11:16:49 test.go:33, main.main() - Log Error message [CB-SPIDER].[ERROR]: 2021-02-14 11:16:49 test.go:34, main.main() - Log Error message:internal error message ####LogLevel: error [CB-SPIDER].[ERROR]: 2021-02-14 11:16:49 test.go:40, main.main() - Log Error message [CB-SPIDER].[ERROR]: 2021-02-14 11:16:49 test.go:41, main.main() - Log Error message:internal error message ####LogLevel: debug [CB-SPIDER].[DEBUG]: 2021-02-14 11:16:49 test.go:46, main.main() - WithField 테스트 [TestField=test] [CB-SPIDER].[DEBUG]: 2021-02-14 11:16:49 test.go:48, main.main() - WithFields 테스트 [Field2=value2,Field3=value3,Field1=value1] [CB-SPIDER].[DEBUG]: 2021-02-14 11:16:49 test.go:50, main.main() - WithError 테스트 [error=테스트 오류]
- 활용 예시: DBMS 응용 로그 예시
-
설정파일 환경변수 지정 방법
-
환경변수 설정:
export CBLOG_ROOT=$HOME/go/src/github.com/cloud-barista/cb-log
-
대상 소스: https://github.com/cloud-barista/cb-log/blob/master/test/sample.go
-
실행 및 결과
$ export CBLOG_ROOT=$HOME/go/src/github.com/cloud-barista/cb-log $ cd $CBLOG_ROOT/test $ go run sample.go # setup cb-log with $CBLOG_ROOT/conf/log_conf.yaml [CB-SPIDER].[INFO]: 2019-08-16 23:22:51 sample.go:25, main.main() - start......... [CB-SPIDER].[INFO]: 2019-08-16 23:22:51 sample.go:45, main.createUser1() - start creating user. [CB-SPIDER].[INFO]: 2019-08-16 23:22:51 sample.go:59, main.createUser1() - finish creating user. [CB-SPIDER].[INFO]: 2019-08-16 23:22:51 sample.go:64, main.createUser2() - start creating user. [CB-SPIDER].[ERROR]: 2019-08-16 23:22:51 sample.go:69, main.createUser2() - DBMS Session is closed!! [CB-SPIDER].[INFO]: 2019-08-16 23:22:51 sample.go:78, main.createUser2() - finish creating user. [CB-SPIDER].[INFO]: 2019-08-16 23:22:51 sample.go:37, main.main() - end......... [CB-SPIDER].[INFO]: 2019-08-16 23:22:53 sample.go:25, main.main() - start......... [CB-SPIDER].[INFO]: 2019-08-16 23:22:53 sample.go:45, main.createUser1() - start creating user. [CB-SPIDER].[INFO]: 2019-08-16 23:22:53 sample.go:59, main.createUser1() - finish creating user. [CB-SPIDER].[INFO]: 2019-08-16 23:22:53 sample.go:64, main.createUser2() - start creating user. [CB-SPIDER].[ERROR]: 2019-08-16 23:22:53 sample.go:69, main.createUser2() - DBMS Session is closed!! [CB-SPIDER].[INFO]: 2019-08-16 23:22:53 sample.go:78, main.createUser2() - finish creating user. [CB-SPIDER].[INFO]: 2019-08-16 23:22:53 sample.go:37, main.main() - end.........
-
Log Level 변경 및 실행 결과:
debug
=>error
$ cd $CBLOG_ROOT/test $ vi $CBLOG_ROOT/conf/log_conf.yaml ## debug => error $ go run sample.go # setup cb-log with a user defined configuration file in code [CB-SPIDER].[ERROR]: 2019-08-16 23:22:57 sample.go:69, main.createUser2() - DBMS Session is closed!! [CB-SPIDER].[ERROR]: 2019-08-16 23:22:59 sample.go:69, main.createUser2() - DBMS Session is closed!!
-
-
설정파일 지정 방법: GetLoggerWithConfigPath()
-
대상 소스: https://github.com/cloud-barista/cb-log/blob/master/test/sample-with-config-path.go
-
실행 및 결과
$ cd ./test $ go run sample-with-config-path.go # setup cb-log with a user defined configuration file in code [CB-SPIDER ..\conf\log_conf.yaml] [CB-SPIDER].[INFO]: 2020-12-23 17:46:09 sample-with-config-path.go:27, main.main() - start......... [CB-SPIDER].[INFO]: 2020-12-23 17:46:09 sample-with-config-path.go:48, main.createUser3() - start creating user. [CB-SPIDER].[DEBUG]: 2020-12-23 17:46:09 sample-with-config-path.go:58, main.createUser3() - msg for debugging msg!! [CB-SPIDER].[INFO]: 2020-12-23 17:46:09 sample-with-config-path.go:63, main.createUser3() - finish creating user. [CB-SPIDER].[DEBUG]: 2020-12-23 17:46:09 sample-with-config-path.go:30, main.main() - msg for debugging msg!! [CB-SPIDER].[INFO]: 2020-12-23 17:46:09 sample-with-config-path.go:68, main.createUser4() - start creating user. [CB-SPIDER].[ERROR]: 2020-12-23 17:46:09 sample-with-config-path.go:73, main.createUser4() - DBMS Session is closed!! [CB-SPIDER].[INFO]: 2020-12-23 17:46:09 sample-with-config-path.go:82, main.createUser4() - finish creating user. [CB-SPIDER].[INFO]: 2020-12-23 17:46:09 sample-with-config-path.go:40, main.main() - end.........
-
Log Level 변경 및 실행 결과:
debug
=>error
$ cd ./test $ vi ../conf/log_conf.yaml ## debug => error $ go run sample-with-config-path.go # setup cb-log with a user defined configuration file in code [CB-SPIDER].[ERROR]: 2020-12-23 18:08:12 sample-with-config-path.go:73, main.createUser4() - DBMS Session is closed!! [CB-SPIDER].[ERROR]: 2020-12-23 18:08:14 sample-with-config-path.go:73, main.createUser4() - DBMS Session is closed!!
-
-