Dan Bernstein의 멀티 로그 는 분명히이 작업을 수행 할 수 있습니다. 또는 아마도 대부분의 경우, 파일 디스크립터를 통해 ! processor 에 콘센트를 제공하여 원하는대로 차이를 만들 수 있습니다.하지만 20M / 1G 크기 사양은 16M이 로그 당 외부 한계. 다음은 대부분 위의 링크에서 복사 + 붙여 넣기를 선택하는 것입니다. 그러나 링크에는 라인 당 타임 스탬프, 가장 최근의 라인 매칭 패턴 만 포함하는 다른 파일을 유지하는 등의 다른 옵션도 자세히 설명 되어 있습니다. .
상호 작용
multilog script
... 스크립트 는 여러 개의 인수로 구성됩니다. 각 인수는 하나의 동작을 지정합니다. 조치는 각 입력 행에 대해 순서대로 수행됩니다.
라인 선택
각 줄이 처음에 선택됩니다. 행동 ...
-pattern
... 패턴이 선과 일치하면 선을 선택 해제합니다. 행동 ...
+pattern
패턴 이 선과 일치하면 선을 선택합니다 .
... 패턴 은 별과 별이 아닌 문자열입니다. 모든 별과 비 별이 일치하는 문자열을 동일한 순서로 연결합니다. 별이 아닌 별은 그 자체와 일치합니다. 패턴 끝 앞의 별은 패턴에 다음 문자가 포함되지 않은 문자열과 일치합니다. 패턴 끝의 별은 모든 문자열과 일치합니다.
자동 회전 로그
경우 디렉토리 또는 점으로 시작되면 다음 작업을 슬래시 ...
dir
... 선택한 각 줄을 dir 이라는 로그에 추가합니다 . 경우 디렉토리가 존재하지 않는 multilog
파일을 작성합니다.
로그 형식은 다음과 같습니다.
dir 은 몇 개의 오래된 로그 파일, current 라는 로그 파일 및 multilog
작업을 추적 하기위한 기타 파일을 포함하는 디렉토리 입니다.
각 이전 로그 파일의 이름은 @로 시작 하여 파일이 완료된 시간을 나타내는 정확한 타임 스탬프를 유지하고 다음 코드 중 하나로 끝납니다.
- .s :이 파일은 완전히 처리되어 안전하게 디스크에 기록됩니다.
- .u :이 파일은 정전시 작성되었습니다. 잘 렸을 수 있습니다. 처리되지 않았습니다.
행동 ...
ssize
... 이후의 dir 조치에 대한 최대 파일 크기를 설정합니다 . multilog
그 결정합니다 현재하는 경우 큰 충분한 전류 가 크기 바이트. ( multilog
최대 파일 크기의 2000 바이트 내에 줄 바꿈이 표시되면 현재가 충분히 큰 것으로 결정합니다. 로그 파일을 줄 경계에서 마무리하려고 시도합니다.) 크기 는 4096과 16777215 사이 여야합니다 . 기본 최대 파일 크기는 99999입니다.
버전 0.75 이상에서 다음과 같은 경우는 multilog
수신 ALRM의 신호를 즉시 그 결정 전류가 있는 경우, 큰 충분한 전류가 비어 있지 않은 것입니다.
(참고 : 필요한 경우 zsh
schedule
내장 ALRM
을 지정된 간격 으로 보내도록 쉽게 설득 할 수 있다고 생각합니다 .)
행동 ...
nnum
... 이후의 dir 조치에 대한 로그 파일 수를 설정합니다 . current로 이름을 바꾼 후 오래된 로그 파일 multilog
이 num 개 이상 이면 타임 스탬프가 가장 작은 오래된 로그 파일을 제거합니다. num 은 2 이상이어야합니다. 기본 로그 파일 수는 10입니다.
행동 ...
!processor
... 이후의 dir 동작을 위한 프로세서를 설정합니다 . 프로세서를 통해 전류 를 multilog
공급하고 current 대신 current 로그 파일로 출력을 저장합니다 . 또한 프로세서가 디스크립터 5에 쓰는 출력을 저장하고 다음 로그 파일에서 프로세서를 실행할 때 디스크립터 4에서 해당 출력을 읽을 수있게합니다. 안정성을 위해 프로세서 는 출력 작성에 문제가있는 경우 0이 아닌 값을 종료해야합니다. 그런 다음 다시 실행합니다. 실행중인 프로세서 는에 대한 모든 프로그램 공급 입력을 차단할 수 있습니다 .multilog
multilog
multilog