변경 로그
현재 개발중인 코드와 RC 배포판의 로그 포맷을 기준으로 하고 있습니다 이전 로그 포맷 참조.
변경 로그(changelog)는 각 페이지별로 최근 변경 로그 캐쉬와 함께 변경 로그 파일에 기록됩니다.
최근 변경 로그 캐쉬는 /data/meta/_dokuwiki.changes
에 유지되며, 매일 갱신 됩니다.
페이지별 변경 로그들은 /data/meta/<ns>/<id>.changes
파일에 기록됩니다.
이 변경 로그들은 페이지 생성,삭제,변경 기록 전부 추적하게 됩니다.
Changelog 포맷
로그는 일반적인 텍스트 파일 형태로 저장합니다. 한 행에 changelog는 하나만 기록되며 각 changelog행은 탭(TAB)문자로 각 세부 항목이 구분합니다.
<date>\t<ip>\t<type>\t<id>\t<user>\t<sum>\t<extra>\n <date> = Unix 타임스탬프 포맷 <ip> = IPv4 or IPv6 ip 주소 <type> = Log line type (아래 참조) <id> = Dokuwiki 페이지 id <user> = Dokuwiki 사용자 이름 (로그인 한 경우만) <sum> = 요약정보나 동작 설명 <extra> = 추상적인 타입 서술 자료 주의: "\t" 이나 "\n"문자가 없을 수도 있다.
Line Types
log line type은 가변 길이 문자열로 됩니다.
단일 문자 <type>
은 DokuWiki 내부에서 쓰이는 용도로 예약되어 있지만 다중문자열로 구성된 <type>
은 실험적인 용도나 사용자 정의 로그를 의미합니다.
<type>
은 대소문자 구별을 하고 ===
와 substr
로 테스트되지 않는 것을 주의해야 합니다.
DokuWiki 예약 타입
타입 | 이름 | Extra | 주의 |
---|---|---|---|
C | 생성 | ||
E | 수정 | ||
e | 부분 수정 | 로그인한 사용자만 가능 | |
D | 삭제 | changelog 와 이전 버전은 페이지 history는 보존 | |
R | reverted | 이전 페이지로 복구 | 사용자는 자신들이 수정하던 revision 페이지를 편집할 수도 있습니다. |
가져오기
오래된 갱신기록은 존재하는 경우 자동으로 가져올 수 있습니다.
주의:
“안전 모드” 상의 PHP를 이용해 여러 서버에서 운용되고 있는 매우 큰 규모의 위키는
실행 시간 제한이 코드에 의해 증가될 수 없기 때문에 잘못 동작될 수 있습니다.
필요하다면 “안전 모드”에서 운용되지 않는 다른 서버로 가져오기 기능이 수행될 수 있습니다.
/data/meta
디렉토리 내에 갱신 기록이 가져오진 후에는 “안전 모드”서버로 복사가 가능합니다.
주의:
매우 느린 변화를 보이는 위키들에서는 $conf['recent_days']
(기본 설정은 7일) 값을 바꾸어 최근 바뀌어진 페이지 목록을 늘릴 수 있습니다.
질문 : 이런 가져오기를 수행하는 플러그인은 어디 있나요?
위에 쓰여진 것처럼 위키 사이트로 가면 됩니다. 심지어 wget을 사용할 수도 있습니다. :)
아주 큰 오래된 갱신 기록을 가져오기하는 것은 PHP의 일반적인 8MB 제한보다 더 많은 메모리를 요구할 수 있습니다.
만일 가져오기가 실패한다면 웹서버 에러 로그에서 Fatal error: Allowed memory size of 8388608 bytes exhausted
같은 PHP 에러를 찾아 보기 바랍니다.
이런 에러를 발견한다면 일시적으로 php.ini
파일의 PHP메모리 크기 제한을 임시로 늘린 후 웹서버를 재시작하여 가져오기 작업을 다시 시도하기 바랍니다.
가져오기 검사
“do=check” 수행은 오래된 갱신 로그들이 존재하는지, 가져오기 작업 중인지, 이미 가져오기가 수행되었는지를 알려줍니다.
만일 가져오기가 제대로 동작하지 않는다면 “do=check”는 가져오기가 아직 끝나지 않았다고 경고합니다.
이 경우, 다시 가져오기 작업을 수행하기 위해서는 /data/meta/_dokuwiki.changes
과 /data/meta/_dokuwiki.changes_*
파일들을 삭제 후 시도하기 바랍니다.
오래된 갱신 로그들 가져오기가 성공적으로 수행된 후에도 “do=check” 실행시 아직 오래된 갱신 로그들이 존재한다는 메시지는 무시해도 됩니다. 그러나 “do=check” 실행시 마다 “Importoldchangelog plugin not disabled after import”라는 에러 메시지가 나온다면 아직 뚜렷한 해결 방안이 없습니다.
일단 단순히 플러그인 기능을 끄기 바랍니다.(관리자로 로그인 후, 관리→플러그인 관리→삭제를 실행하면 플러그인이 있는 디렉토리와 플러그인을 삭제할 것 입니다. 삭제 후에도 “Importoldchangelog … import”에러는 “do=check”실행시에는 계속 나타날 것입니다.
변경 로그의 유지관리
/data/meta
디렉토리를 삭제하지 말기 바랍니다.
다른 위키 데이타로 부터 생성되지 않는 chanagelog정보를 현재 포함하고 있기 때문입니다.
번역
english version: dokuwiki-2006-11-06.
Add your email here if you created translated or modified whole or part of this page.
- jk Lee - real mail domain is gmail, not zoo.com for spam filtering 2007-2-4 created