상태
Linux에서 다음을 생성하는 프로그램을 실행하고 있습니다.자세한 로그가 많습니다.도착하다 stdout
.
프로그램 자체는 기능을 사용하여 백그라운드로 이동합니다 systemd.service
.
지금까지 나는 주요 로그 수준만 디스크에 저장하고(사용 syslog
또는 읽기 journalctl
) 사소한 자세한 로그는 stdout
.
이라는 매우 안정적인 앱이 있습니다.리디렉션이를 통해 자세한 로깅 pty에 다시 연결할 수 있습니다.
따라서 프로그램에서 잘못된 동작이 발생할 때마다 해당 PTY에 다시 연결하고 자세한 로그를 조사하여 무슨 일이 일어나고 있는지 확인할 수 있습니다.
질문
스키마를 다음으로 변경했습니다.건축 64그리고 이 플랫폼에서는 리디렉션을 사용할 수 없는 것 같습니다.
가능한 해결책
- 모든 자세한 로그를 디스크에 저장하고 평소대로 확인: 아니요, 자세한 로그는 매우 커서 스토리지에 부담을 주거나
tmpfs
마운트하면(크기 때문에) 회전할 수 있기 때문입니다. 더 중요한 기본 로그를 더 일찍 잃어버리세요. - 의사 tty에서 시작: 리소스 낭비이므로 systemd.service를 screen 또는 tmux와 함께 사용할 가능성이 있는지 모르겠습니다.
대부분의 경우 메인 로그만 필요합니다. 매주 또는 2주에 한 번씩 체크인합니다.
하지만 이상한 동작이 발생하면 자세한 로그를 파헤쳐 봐야 합니다. 오작동이 사라지고 로그도 손실되므로 애플리케이션을 다시 시작할 수는 없습니다.
그렇다면 현재 pty를 aarch64의 사용자 정의 응용 프로그램의 기본 pty에 어떻게 다시 연결합니까?
답변1
자세한 로그를 프로그램에서 파일로 보내고 이를 파일에서 시스템 로그에 삽입할 수 있습니다. 이 파일을 자주 회전하세요. syslog에서 우선순위가 다른 로그 메시지를 다른 파일로 필터링하고 원하는 대로 파일을 순환합니다.