0
나는 log4mongo와 로그를 저장하는 MongoDB를의 TTL + log4mongo
<field>
<name value="timestamp" />
<layout type="log4net.Layout.PatternLayout" value="%date" />
</field>
을 사용하고 있습니다,하지만 난 TTL 작업에 그 타임 스탬프 필드를 사용할 수 없습니다입니다.
db.logs.ensureIndex({ "timestamp": 1 }, { expireAfterSeconds: 3600 })
이렇게하면 안됩니까? 그렇지 않다면 어떻게해야합니까?
P. 타임 스탬프 (즉 ensureIndex 호출하기 전에) 인덱스 필드 ensureIndex()에 대한 타임 스탬프를 사용하는
당신이에서 다시 에러 메시지를 받고있다되지 않습니다 ensureindex() 호출? 그렇다면 pls 귀하의 질문에 그것을 추가하십시오. 또한 로그 컬렉션 (예 : db.logs.findOne())에서 예제 문서를 추가 할 수 있습니까? –
타임 스탬프가 MongoDB 컬렉션의 기본 Date 유형이 아닐 수 있습니다. 레이아웃이 실제로 문자열을 생성하고있을 가능성이 있습니다. [테스트 케이스] (https://github.com/log4mongo/log4mongo-net/blob/master/src/Log4Mongo.Tests/MongoDBAppenderTest.cs#L39-L42)의 구성을 참조하십시오. –
요청을 제출했습니다. (https://github.com/log4mongo/log4mongo-net/pull/29) TTL 색인을 활성화하십시오. – seanfitzg