Journalctl의 수준 차별화

Journalctl의 수준 차별화

어떻게든 저널ctl이 실제 메시지 옆에 로그 수준을 인쇄하도록 할 수 있나요?

해당 옵션을 찾았 -p지만 원하는 것이 아닙니다. 오류와 경고를 보고 싶지만 이를 구별할 수 있기를 원합니다.

내가 찾은 유일한 것은 다음과 같습니다 man journalctl.

tty로 출력할 때 줄은 우선순위에 따라 색상이 지정됩니다. ERROR 수준 이상의 줄은 빨간색으로 표시되고 NOTICE 수준 이상의 줄은 모두 정상적으로 강조 표시됩니다.

이것은 좋은 시작이지만, 여전히 8개 레벨을 3개 레벨로 집계하기보다는 8개 레벨 모두를 구별하고 싶습니다.

답변1

한 가지 옵션은 출력 형식 옵션을 사용하는 것입니다. 예를 들어, journalctl -o verbose특정 항목에 연결된 모든 데이터가 표시됩니다. 예:

수요일 2017-02-08 21:06:27.524361 EET [s=f689734c6c674cfd98a49e66c3349fdd;i=42c;b=01111969442644239da701153bd49c37;m=23e9195;t=548098 f c53333;x=c943c53e7411726]
    우선순위=6
    SYSLOG_FACILITY=3
    CODE_FILE=src/core/job.c
    코드 줄=804
    CODE_FUNCTION=job_log_status_message
    SYSLOG_IDENTIFIER=시스템화
    MESSAGE_ID=39f53479d3a045ac8e11786248231fbf
    USER_UNIT=timers.target
    MESSAGE=목표 타이머에 도달했습니다.
    결과=완료
    _TRANSPORT=저널
    _PID=874
    _UID=1000
    _GID=1000
    _COMM=시스템
    _EXE=/usr/lib/systemd/systemd
    _CMDLINE=/usr/lib/systemd/systemd --사용자
    _CAP_EFFECTIVE=0
    _SYSTEMD_CGROUP=/user.slice/user-1000.slice/[이메일 보호됨]/init.scope
    _SYSTEMD_OWNER_UID=1000
    [이메일 보호됨]
    _SYSTEMD_USER_UNIT=init.scope
    _SYSTEMD_SLICE=user-1000.슬라이스
    _SYSTEMD_USER_SLICE=-.slice
    _SYSTEMD_INVOCATION_ID=2f397502a38947d5b18eca7eb5f5b1ba
    _SOURCE_REALTIME_TIMESTAMP=1486580787524361
    _BOOT_ID=01111969442644239da701153bd49c37
    _MACHINE_ID=4de8a7d0aad84611b2e1dfb0ff8f43e7
    _HOSTNAME=드라큘라

여기의 필드는 PRIORITY실제로 메시지 수준(이 경우 수준 INFO)을 가리킵니다. 레벨 매핑은 다음과 같습니다.

0: emerg
1: alert
2: crit
3: err
4: warning
5: notice
6: info
7: debug

다른 메타데이터를 피하고 일종의 후처리(사용자 정의 쉘 스크립트 등) 없이 메시지 수준(내가 틀렸다면 정정)을 그대로 둘 수는 없다고 생각합니다.

관련 정보