আমি প্রতিটি নথিতে একক সময় সিরিজের প্রবেশের পরামর্শ দিচ্ছি। প্রতি নথি প্রতি একাধিক এন্ট্রি সংরক্ষণ করার সাথে কিছু সমস্যা রয়েছে:
- একটি একক দস্তাবেজ একটি নির্দিষ্ট আকারের (বর্তমানে 16 এমবি) সীমাবদ্ধ; এটি একক দস্তাবেজে কতগুলি এন্ট্রি সংরক্ষণ করা যায় তা সীমাবদ্ধ করে
- কোনও নথিতে আরও এন্ট্রি যুক্ত হওয়ার সাথে সাথে পুরো ডকুমেন্টটি (এবং সময় ধারাবাহিক) অকারণে মুছে ফেলা হবে এবং মেমরির বৃহত অংশে পুনরায় স্থানান্তরিত হবে
- নিয়মিত ডকুমেন্টের প্রশ্নের তুলনায় সাব-ডকুমেন্টের প্রশ্নগুলি সীমাবদ্ধ
- খুব সমতল কাঠামোযুক্ত দস্তাবেজগুলি (প্রতিটি সেকেন্ডের জন্য একটি উপ-নথির মতো) পারফরম্যান্ট নয়
- অন্তর্নির্মিত মানচিত্র-হ্রাস সাব-ডকুমেন্টগুলিতেও কাজ করে না
এছাড়াও লক্ষ্য করুন যে একটি টাইমস্ট্যাম্পটি ডিফল্ট মঙ্গোডিবি অবজেক্টআইডিতে অন্তর্নির্মিত । সময় সিরিজের যথার্থতা যদি এক সেকেন্ডের চেয়ে কম হয় তবে আপনি এটি ব্যবহার করতে পারেন ।
মোগোডিবি ব্যবহার করে এমন একটি ইভেন্ট লগিং লাইব্রেরির বিএসন নথিটির একটি উদাহরণ এখানে রয়েছে :
Example format of generated bson document:
{
'thread': -1216977216,
'level': 'ERROR',
'timestamp': Timestamp(1290895671, 63),
'message': 'test message',
'fileName': '/var/projects/python/log4mongo-python/tests/test_mongo_handler.py',
'lineNumber': 38,
'method': 'test_emit_exception',
'loggerName': 'testLogger',
'exception': {
'stackTrace': 'Traceback (most recent call last):
File "/var/projects/python/log4mongo-python/tests/test_mongo_handler.py", line 36, in test_emit_exception
raise Exception(\'exc1\')
Exception: exc1',
'message': 'exc1',
'code': 0
}
}
যেহেতু ইভেন্টের লগ কোনও সময়ের সিরিজের অনুরূপ , তাই কোডের বাকী অংশটি অধ্যয়ন করার পক্ষে মূল্যবান হতে পারে । জাভা, সি #, পিএইচপি এবং পাইথনে সংস্করণ রয়েছে।
এখানে আরও একটি অনুরূপ মুক্ত উত্স প্রকল্প: জারকভ
[আপডেট] @ রকসায়েন্সের মন্তব্যের জবাবে আমি আরও কিছু উল্লেখ যুক্ত করেছি: