2012-01-12 12 views
2

나중에 분석을 위해 일부 통계를 기록하고 싶지만 응용 프로그램 자체에는 필요하지 않은 응용 프로그램이 있습니다. 즉, 응용 프로그램에서 데이터를 읽을 필요가 없습니다. 이러한 통계를 저장하는 데 사용되는 시스템이 무엇이든 상관없이 정기적으로 데이터를 덤프 할 수 있어야합니다.Custom Log in AppEngine

AppEngine에 내장 된 로깅을 사용할 수 있지만 응용 프로그램 로그에 표시됩니다. 내가 확인 할 때마다 다른 사용자 정의 정보를 볼 필요없이 응용 프로그램을 디버깅하기위한 응용 프로그램 로그를 유지하고 싶습니다.

어떻게 하시겠습니까?

편집 : 통계에 대한 자세한 내용. 사용자가 특정 작업 (하루에 1-3 번)을 완료 할 때마다 해당 작업에 대한 세부 정보를 저장해야합니다. 시간 및 사건 순서. 이것들은 세션 당 단일 문자열 - 1-2kB에 저장됩니다.

+0

AppEngine 자체에 대해 잘 모르겠습니다. 별도의 로그 도움말에 다른 (사용자 정의) 로거를 추가하면 도움이 될까요? 아니면 실제로 데이터를 직렬화하고 나중에 검사하는 것에 대해 이야기하고 있습니까? –

+0

AppEngine 안에있을 필요는 없습니다 (좋을지라도). – JohnGB

+0

당신이 말하는 통계의 유형과 이러한 사건의 빈도에 관한 더 자세한 정보를 제공 할 수 있습니까? –

답변

3

내 응용 프로그램에서 비슷한 로깅을했는데 로그 문자열과 수준을 받고 자체 데이터베이스에 저장하는 자체 호스팅 서버에 간단한 서블릿을 설정했습니다. 이러한 종류의 로그가 필요할 때마다 비동기 URLFetch을 사용하여 Google 애플리케이션에서 로깅 서버로 데이터를 전송합니다.

데이터 저장소에 로그 데이터를 저장할 수 있지만 로그 파일 전체를 탐색 할 때 내 경험에 비추어 볼 때 로그 문자열의 전체 텍스트 검색을 수행 할 수있는 옵션이 손실됩니다. 로그 파일을 외부 파일에 저장하고 grep 만 필요한 라인을 저장할 수도 있습니다.

2

이 데이터를 데이터 저장소에 저장하는 것이 가장 좋습니다. 대기 시간이 염려되는 경우 비동기 작업을 사용하고 최대한 빨리 쓰기를 시작하거나 작업 대기열을 사용하여 오프라인으로 쓰기 작업을 수행 할 수 있습니다.

+0

엔티티 그룹에 대한 쓰기/초 (권장) 제한을 빨리 초과하므로 동시성 문제가 발생하지 않습니까? – JohnGB

+0

@ JohnGB : 로그 엔티티를 자식없이 루트 엔티티로 만들 수 있다고 생각합니다. 이렇게하면 각 로그 엔티티가 자체적으로 엔티티 그룹이됩니다. http://code.google.com/appengine/docs/python/datastore/entities.html#Entity_Groups_and_Ancestor_Paths –

+0

의 네 번째 단락을 참조하십시오. @IbrahimArief : 로그 엔티티는 쓰기 횟수가 1을 초과하면 문제가 계속 발생합니다. /비서. 사용자가 보유한 모든 세션에 대해 로그 이벤트가 트리거되면이 제한을 초과 할 가능성이 매우 높습니다. – JohnGB

관련 문제