개요
bsr은 로그 시스템을 통해 bsr 전반의 동작과정을 모니터링하고 문제가 발생했을 때 디버깅 할 수 있는 환경을 제공합니다. bsr 의 로그는 지정한 최대크기 만큼 실시간 파일로 기록되며 최대 파일크기 이상 초과 시 스스로 롤링합니다. 로그는 bsr 커널 모듈에서 기록하는 커널로그와 bsr 유틸리티에서 기록하는 응용로그로 분리되어 있어서 각각 개별적으로 저장됩니다.
로그 파일이 저장되는 경로는 다음과 같으며 일반적인 텍스트 편집기로 직접 파일을 읽어서 볼 수 있습니다.
windows는 “%BSR_PATH%\..\log\” 경로에 저장됩니다.
linux는 “/var/log/bsr/” 경로에 저장됩니다.
유형
bsr로그는 커널 로그와 응용로그로 구분되고 커널로그는 다시 시스템로그, 디버그로 분류됩니다.
커널로그는 bsr의 일반적인 동작과 상태를 추적하기 위한 정보를 디버그 로그로 기록하고 bsr 복제 운영에 문제가 발생하거나 시스템에 영향을 줄 만한 심각한 에러에 대한 정보를 시스템 로그로 기록합니다. feature로그는 개발자를 위한 디버그로그로 일반 사용자는 사용할 필요가 없습니다.
응용로그는 bsr 유틸리티의 동작과정을 추적하기 위한 용도로 사용합니다.
조회
설정 정보
bsrcon /get_log_info 명령을 실행하여 로그 유형에 따른 수준, 롤링 파일 단위 정보를 확인할 수 있습니다.
>bsrcon /get_log_info Current log level. system-lv : err(3) debug-lv : info(6) feature-lv : 0 Number of log files that can be saved. Maximum size of one log file is 50M. bsrdriver : 15 bsradm : 2 bsrsetup : 2 bsrmeta : 2
조회
시스템 로그를 제외한 모든 로그는 로그 저장 경로에서 로그파일을 직접 읽어서 조회할 수 있습니다.
시스템 로그
Windows 에서는 이벤트로그에서, Linux 에선 dmesg 명령을 통해 확인 합니다.
bsrwatch
bsr 의 동작과 상태를 실시간 추적하기 위한 용도로 bsrwatch 명령을 제공합니다. bsrwatch 명령은 커널로그가 기록되는 상황을 표준출력으로 실시간 확인할 수 있습니다.
C:\Windows\system32\>bsrwatch
C:\Windows\system32\>cd C:\Program Files\bsr\bin/../log
C:\Program Files\bsr\log>Powershell.exe -command "Get-Content bsrlog.txt -Wait -Tail 100"
00000001 07/17/2020 09:26:58.513 [wait_for_add_device] bsr_info<6>[0xFFFFE000669F2880] wait for device to be connected for log file generation.(C:\Program Files\bsr)
00000002 07/17/2020 09:26:58.513 [initRegistry] bsr_info<6>[0xFFFFE000666BC880] registry_path[\Registry\Machine\System\CurrentControlSet\Services\bsr]
00000003 07/17/2020 09:26:58.513 [initRegistry] bsr_info<6>[0xFFFFE000666BC880] bypass_level=0, read_filter=0, use_volume_lock=1, netlink_tcp_port=5678, daemon_tcp_port=5679, ver=1.5
00000004 07/17/2020 09:26:58.513 [bsr_init] bsr_info<6>[0xFFFFE000666BC880] initialized. Version: 1.6-A2 (api:2/proto:86-114)
00000005 07/17/2020 09:26:58.513 [bsr_init] bsr_info<6>[0xFFFFE000666BC880] 1.6-T1(BSR-73) GIT-hash: dee8f9c build by DEV3-KBLD+Administrator@dev3-kbld, Wed Jul 15 14:29:17 2020
00000006 07/17/2020 09:26:58.513 [bsr_init] bsr_info<6>[0xFFFFE000666BC880] registered as block device major 147
00000007 07/17/2020 09:26:58.513 [DriverEntry] bsr_info<6>[0xFFFFE000666BC880] MVF Driver loaded.
00000008 07/17/2020 09:26:58.544 [WskGetNPI] bsr_info<6>[0xFFFFE0006741A040] WskCaptureProviderNPI start.
설정
bsrcon 명령을 통해 로그 수준과 로그파일 롤링 단위를 지정할 수 있습니다.
로그 수준 및 로그 파일 저장 설정
로그 수준 기본 값
system 로그는 err(3) 입니다.
debug 로그는 info(6) 입니다.
feature 로그는 none(0) 입니다.
로그 파일 롤링 단위 기본 값
커널로그 파일은 15 입니다.
응용로그 파일은 2 입니다.
bsrcon usage: bsrcon cmds options ... /maxlogfile_cnt [LogFileMaxCount : 0 ~ 1000] /climaxlogfile_cnt [adm, setup, meta] [LogFileMaxCount : 0 ~ 255] /minlog_lv [sys, dbg] [Level : 0~7] level info, emerg(0) alert(1) criti(2) err(3) warning(4) notice(5) info(6) debug(7) /minlog_lv feature [flag : 0,1,2,4] level info, none(0) oos(1) latency(2) verify(4) ...
형식
커널로그
순서, 날짜, 시간, 함수, 로그 수준, 로그 내용
00000068 07/15/2020 13:43:11.343 [state_change_lock] bsr_warn<4>[0xFFFFE0013C788880] worker should not initiate state changes with CS_SERIALIZE current:FFFFF801C0154B90 resource->worker.task:FFFFE0013E78BC20 00000069 07/15/2020 13:43:11.343 [print_state_change] bsr_info<6>bsr r0 pnode-id:0, cs(StandAlone), prole(Unknown), cflag(0x0), scf(0x2a): bsr_adm_connect, conn( StandAlone -> Unconnected ) 00000070 07/15/2020 13:43:11.343 [NetlinkWorkThread] bsr_info<6>[0xFFFFE0013C788880] bsr netlink cmd(BSR_ADM_CONNECT:10) done (cmd_pending:0) <-
응용로그
날짜, 시간, 로그 수준, pid, 함수, 라인, 실행 명령, 로그 내용
2020/07/15 16:18:39 bsr_erro [pid:2060][func:err][line:1056][cmd:NULL] bsradm: Unknown command 'resoure' 2020/07/15 16:18:44 bsr_erro [pid:1160][func:err][line:1056][cmd:status] '10' not defined in your config (for this host).