고성능 및 풍부한 기능 세트를 위해 구축 된 AC 로깅 라이브러리.
한국어 | 简体中文
주요 기능 | 빌드 및 설치 | 기본 사용 | 기여
Stumpless에는 C로 로그를 빠르고 쉽게 로그인하는 많은 기능이 있습니다.
이 라이브러리의 주요 목표는 다양한 로그 대상에 일관된 로깅 인터페이스를 제공하는 것입니다. 즉, 다른 SDK를 찾거나 원하는 곳을 얻기 위해 데몬과 플러그인을 추가하지 않고 이벤트를 정의하고 원하는 위치에 집중할 수 있습니다. Stumpless는 다음에 로그를 작성할 수 있습니다.
필요한 것이 무엇인지 보지 않으십니까? 귀하의 요청에 따라 문제를 만들면 로드맵에서 작업 할 것입니다!
Stumpless는 Cmake와 Cmake 지원 빌드 툴체인 (GCC 또는 Visual Studio와 같은) 만 필요합니다.
# cloning the latest version of the source tree
git clone [email protected]:goatshriek/stumpless.git
# creating a new build directory
mkdir build
cd build
# configuring the new build
cmake ../stumpless
# building stumpless (with 4 threads - adjust as desired)
cmake --build . --parallel 4
# install the library (you probably need sudo to do this)
sudo cmake --install .다른 환경 및/또는 다른 툴체인을 사용하여 확장 및 설치에 대한 자세한 내용은 설치 지침을 확인하십시오.
시작하는 가장 간단한 방법은 stumplog 기능을 표준 라이브러리의 syslog 기능을 직접 대체하는 것입니다.
// if you're used to doing this:
syslog ( LOG_INFO | LOG_USER , "My message #%d" , count );
// then you can start by changing to this:
stumplog ( LOG_INFO | LOG_USER , "My message #%d" , count ); 대상을 열지 않은 경우 플랫폼의 기본 대상에 메시지를 기록합니다. Linux에서는 /dev/log , Mac 시스템에서는 /var/run/syslog 이며 Windows 시스템에서는 Windows 이벤트 로그입니다. stumplog 에 전화하기 전에 대상을 열거 나 심지어 몇 가지를 열면 로그가 가장 최근에 열린 대상으로 전송됩니다.
더 짧은 기능 호출을 원한다면 stump 기능을 사용하여 현재 대상에게 메시지를 보낼 수 있습니다. printf 와 마찬가지로 형식 지정자를 사용할 수도 있습니다.
stump ( "Login attempt failure #%d for user %s" , count , username ); 형식 지정자가 필요하지 않은 경우 _str 변형 중 하나를 사용하십시오. 더 빠르고 안전합니다!
stump_str ( "Login failure! See structured data for info." ); 기본값을 사용하지 않고 특정 대상을 열려면 필요한 대상을 열고 메시지를 보내기 시작하십시오. 예를 들어, example.log 라는 파일에 로그인하려면 :
target = stumpless_open_file_target ( "example.log" );
// uses the last opened target by default
stump ( "Login attempt failure #%d for user %s" , count , username );Splunk 또는 Rsyslog와 같은 것으로 네트워크를 통해 메시지를 보내는 것은 다음과 같습니다.
target = stumpless_open_udp4_target ( "send-to-splunk-example" ,
"mylogserver.com" ); // or use an IP
stump ( "Login attempt failure #%d for user %s" , count , username );여러 대상이있는 경우 다음과 같이 선택한 대상으로 메시지를 보낼 수 있습니다.
stumpless_add_message ( target ,
"Login attempt failure #%d for user %s" ,
count ,
username );로깅 호출에서 직접 심각도 레벨을 지정하는 것이 일반적이므로 Stumpless는이를 덜 장황하고 효율적으로 만들기 위해 일부 매크로 기능을 제공합니다. 예를 들어, 정보가 심각한 메시지 로그인하려면 다음을 수행 할 수 있습니다.
stump_i ( "this gets logged as an info message" ); 각 메시지에서 소스 파일, 줄 번호 및 함수 이름 정보도 표시하려면 _t 사용할 수 있습니다 ( 't'는 추적입니다).
stump_t ( "this includes source info" ); 이러한 기능을 사용하면 STUMPLESS_ENABLE_UPTO 또는 STUMPLESS_DISABLE_DOWNTO 기호를 정의하여 컴파일 시간에 제거 할 수 있다는 추가 이점이 있습니다. 이를 통해 빌드간에 로깅 레벨을 쉽게 변경할 수 있습니다. 예를 들어 소스 코드의 차이가없는 Prod 및 Debug 버전이있는 것과 같이.
// be sure to define this before stumpless.h gets included
#define STUMPLESS_ENABLE_UPTO_INFO
// ...
// this log will go through just fine
stump_i ( "I'm doing that thing you asked" );
// this debugging message is completely removed: no runtime impact whatsoever
stump_d ( "DEBUG info: %d, %d, %s" , thing_1 , thing_2 , stringy_thingy );안타치/레벨의 헤더를 확인하여 심각도 속도 기능의 전체 목록 또는 심각도 수준 예제를 확인하여 전체 프로그램이 작동하는 것을 확인하십시오.
위 시나리오의 자세한 예, 특정 대상 유형 사용,보다 복잡한 메시지 구조를 처리하는 방법 및 자세한 내용은 예제를 확인하십시오. 여기에는 주석이 달린 예제 코드 파일을 컴파일, 실행 및 수정하여 시작할 수 있습니다.
문제가 발생하거나 기능 요청이 있습니까? 템플릿 중 하나를 사용하여 문제를 만들면 최대한 빨리 응답합니다. 또한 오픈 소스 커뮤니티에 돌려 줄 수있는 다양한 방법에 대한 자세한 내용은 프로젝트의 기여 가이드 라인을 살펴볼 수 있습니다!
실제로 코드를 작성하거나 직접 업데이트하려면 개발 가이드를 살펴보고 자세한 방향을 얻으십시오. 경험 수준의 경험과 기여에 대한 친숙 함을 기반으로 몇 가지 옵션이 있습니다.
첫 번째 옵션은 레이블 좋은 첫 번째 문제로 표시된 문제 목록을 탐색하는 것입니다. 이러한 문제는 작지만 의미있는 작품으로 선정되며 완료하기 위해 취할 수있는 일반적인 접근 방식에 대한 세부 사항을 포함합니다. 이 프로젝트의 물이나 오픈 소스 기부금을 일반적으로 테스트하려는 경우 시작하기에 좋은 곳입니다.
숙련 된 개발자는 프로젝트의 전체 문제 목록과 로드맵을 선호 할 수 있습니다. 항목이 관심을 사로 잡는 경우 기존 문제에 대한 의견을 삭제하거나 아직 존재하지 않는 경우 새 문제를 열고 다른 사람들이 진행 중이라는 것을 알 수 있도록 작업을 수행하려는 의도를 명시하십시오.
여기에서 설명되지 않은 Stumpless의 무언가가 어떻게 작동하는지 궁금하다면 문서 폴더에 저장된 문서의 해당 섹션을 확인할 수 있습니다. 저장소의 폴더에는 포함 된 내용 및 기타 관련 정보를 자세히 설명하는 자체 readme 파일이 포함되어 있습니다. 각 기능에 대한 문서는 C ++와 같은 다른 언어 바인딩뿐만 아니라 프로젝트 웹 사이트에서도 호스팅됩니다.
Stumpless에는 man Pages 형태의 로컬 설치 문서도 포함됩니다. 라이브러리를 설치 한 후에는 디렉토리가있는 헤더 이름을 가진 사람을 달리면서 Man Stumpless_log.h와 같은 man stumpless_log.h 를 사용하여 간단한 문자열 메시지를 기록하는 기능에 대한 문서를 볼 수 있도록 헤더 파일 (및 포함 된 기능)에 대한 문서를 확인할 수 있습니다.
프로젝트 팀과 광범위한 커뮤니티에 지원을 위해 연락 할 수있는 방법도 많이 있습니다.