2017-12-07 8 views
1

여러 컴퓨터 (500)에서 timestamps이라는 단일 파일에 로그를 덤프하고 있으며 각 항목은 4KB 미만입니다. 파이썬의 로깅 모듈은 분명히 locking을 처리하고 Thread-Safety을 보장합니다.로깅 모듈의 스레드 안전성, 네트워크에서도 스레드 안전성입니까?

당신은 네트워크에 연결된 저장 장치의 일종을 사용하고 있습니까 : 의견을 user2357112 @https://docs.python.org/2/library/logging.html#thread-safety

덕분에, 여기에 몇 가지 자세한 내용입니까?

저장 장치는 읽기/쓰기가 가능한 쓰기 가능 logfile.txt을 공유하는 네트워크 디스크입니다.

컴퓨터가 로컬 로깅하고 로그 파일을 어떻게 든 동기화합니까? 결말 다른 컴퓨터의 로그 기록은

컴퓨터가 로컬로 로그온하지하지만 그들은 마친 사람, 그들은

어떻게

를 공유하는 logfile.txt의 끝으로 쓸 '로거'를 사용하고 있습니다 같은 파일에?

컴퓨터의 모든 그래서 하나의 파일에 잘못된 기록을 어떻게 갈 수 logfile.txt

에 추가된다? 또는 사용하는 것이 안전합니까?

+0

여러 컴퓨터의 로그를 같은 파일에 기록한다는 것은 무엇을 의미합니까? 우리는 당신의 네트워킹이 어떻게 설정되고 이들 컴퓨터가 파일에 어떻게 쓰고 있는지에 대해 더 많이 알 필요가있을 것입니다. – user2357112

+0

그들은 파이썬의'Logging' 모듈을 사용하여 작성하고 있습니까? 나는 심지어 그것에 관한 링크를 게시했다. 네트워크는 인트라넷에 있으며 각 머신은 매 2 시간마다 로그를 쓰고 있습니다 ... 따라서 일반적으로 큰 부하는 없습니다. 그러나 경쟁 조건이 계속 나타날 수 있습니까? – user1767754

+0

네트워크 연결 저장 장치를 사용하고 있습니까? 중앙 컴퓨터가 네트워크에서 로그 메시지를 수신하고 로그에 기록합니까? 컴퓨터가 로컬 로깅하고 로그 파일을 어떻게 든 동기화합니까? * 서로 다른 컴퓨터의 로그 레코드가 같은 파일에 어떻게 끝나고 있습니까? * 단지 'logging'모듈을 사용한다고해서 그 사실을 알 수는 없습니다. – user2357112

답변

1

그래서 하나의 파일에 쓰기가 잘못 될 수 있습니까? 또는 사용하는 것이 안전합니까?

파일 액세스를 처리하는 드라이버는 파일을 하나의 프로세스/사용자에게만 독점적으로 고정시킵니다. 최악의 경우, 추가한다고해서 순차적이라는 의미는 아닙니다. 예를 들어, 당신은 이렇게 끝낼 수있는 라인을 엉망으로 만들었습니다.

더 좋고/더 안전한 방법은 /myNas/logs/MMDDYYHH/workerPID.log과 비슷하지만 일일 청소기 스크립트를 사용하여이 모든 것을 master.log 파일에 병합하십시오. 중간 처리 단계에서 각 로그를 읽고 메모리 : sqlite 데이터베이스에 넣고 날짜를 & 시간으로 정렬 한 다음 통합 된 master.log으로 덤프 할 수 있습니다.

또는 실시간 로그 모니터링이 필요한 경우 Windows에 watch 같은 도구가 있으며 디스크에 기록 될 때마다 각 파일을 따라갈 수 있다고 생각합니다.