2010-09-23 6 views
12

क्या आप ऑडिट लॉगिंग के लिए कोई अच्छी जावा लाइब्रेरी जानते हैं? या कम से कम अच्छी किताब/आलेख किसी एप्लिकेशन के लिए ऑडिट लॉग बनाने के लिए अच्छा दृष्टिकोण चुनने में मदद के लिए?व्यापार लेखा परीक्षा लॉग - अनुशंसित पुस्तकालय या दृष्टिकोण?

लाइब्रेरी आवश्यकताओं:
- आम लेखा परीक्षा मेटाडाटा को परिभाषित (userId, समय, आईपी, ...)
- परिभाषित लेखा परीक्षा संदेश प्रकारों (लेन-देन के लिए भेजा, संदेश प्राप्त हुआ, ...)
- लॉक/खोज ऑडिट लॉग मेटाडाटा
के आधार पर - - व्यक्तिगत लेखा परीक्षा संदेश (ग़ैर-अस्वीकरण के लिए)
हस्ताक्षर आदि

संपादित करें:
मैं looki नहीं कर रहा हूँ एनजी स्वचालित समाधान के लिए, मैं की तरह कुछ बुला के साथ पूरी तरह खुश हूँ:

AuditEvent event = new TransactionSentEvent(userId, account, amount, ...) 
AuditLog.audit(auditEvent); 

बिंदु इसके पीछे बुनियादी सुविधाओं के लिए है -

उत्तर

1

इस https://github.com/dima767/inspektr के बारे में क्या है, जैसा कि आपने ऊपर वर्णित किया है, और लगभग इंस्पेक्ट में खुदाई कर रहा हूं।

+0

कूल, यह वही है जो मैं ढूंढ रहा हूं! – krtek

4

आप उपयोग कर रहे हैं डेटाबेस, गैर reputability आदि के लिए सुरक्षित भंडारण जावा, एक तरीका वसंतफ्रेमवर्क और एओपी का उपयोग करना है। यह सबसे लचीला विकल्प है। Here is an example

तुम भी का उपयोग कर डेटाबेस के स्तर पर यह कर सकते हैं हाइबरनेट (more info)

+0

अगर मुझे इसे फिर से करना पड़ा, तो मैं इसे ऐसा करूंगा। हालांकि, आपको काम करने के लिए अपने व्यवसाय तर्क को बहुत ही _cleanly_ बनाना चाहिए क्योंकि विधि इंटरसेप्शन हमेशा आपको एक विधि के अंदर प्राप्त विवरण नहीं देता है (उदाहरण के लिए यदि आप किसी विधि के अंदर एक खाता खोजते हैं और खाते की कुछ गैर-आईडी संपत्ति का ऑडिट करना चाहते हैं (वर्तमान मूल्य की तरह) यह इंटरसेप्टर के लिए उपलब्ध नहीं होगा - इस प्रकार आपको विधि को दो में विभाजित करना होगा - ताकि सभी गुण जो आप ऑडिट करना चाहते हैं वे विधि इंटरसेप्टर स्कोप में हैं। – Justin

+0

आपके उत्तर के लिए धन्यवाद - असल में मैं हूं विधि या कक्षा स्तर की तुलना में अधिक "उच्च स्तर" ऑडिटिंग की तलाश में। – krtek

+0

यह उत्तर मेरे लिए बहुत उपयोगी है, मैं हाइबरनेट विकल्प के लिए जाना पसंद करता हूं।) – huahsin68

1

टिप्पणियां माध्यम से वसंत के बिना AscpectJ पुस्तकालय का उपयोग कर सकते,

+0

हां यह सच है, इसका उल्लेख करना भूल गया। धन्यवाद। – surajz

0

व्यापार/आपरेशन स्तर प्रवेश करने के लिए एक अच्छा दृष्टिकोण निर्धारित करने के लिए आप वास्तव में क्या जरूरत है दर्ज करना। आप पहले से ही कर चुके हैं।

आपको जोड़ने के लिए वास्तव में किसी भी नए ढांचे या एओपी की आवश्यकता नहीं है। हालांकि, आपके पास कुछ अतिरिक्त आवश्यकताएं हैं जो आपको अधिक काम किए बिना लॉग 4 जे या java.util.logging जैसे सामान्य लॉगिंग फ्रेमवर्क का उपयोग करने से रोकती हैं।

आपके बारे में सोचने का सबसे आसान तरीका यह है कि एक ऑडिट कक्षा है जिसमें जेडीबीसी कनेक्शन इंजेक्शन या कॉन्फ़िगर किया गया हो। यह वसंत के माध्यम से किया जा सकता है यदि आप पहले से ही उस ढांचे का उपयोग कर रहे हैं। यदि आपके पास डीआई कंटेनर नहीं है तो आपको इसे सिंगलटन के रूप में परिभाषित करने की आवश्यकता है।

आपको जिस चीज की आवश्यकता है वह हस्ताक्षर करने की क्षमता है। जावा में java.security.Signature डेटा हस्ताक्षर करने और सत्यापित करने के लिए है।

जैसा कि मैंने पहले कहा था कि आपके पास ऐसी आवश्यकताएं हैं जो आपको उपलब्ध लॉगिंग फ्रेमवर्क का उपयोग करने से रोकती हैं। यही कारण है:

  • खोज ऑडिट लॉग मेटाडाटा

आप खोज आप किसी पाठ फ़ाइल के लिए लिख करने के लिए मुश्किल हो सकता है के रूप में एक डेटाबेस में डेटा स्टोर करने की जरूरत है की सुविधा के लिए के लिए पर आधारित है। लॉगिंग फ्रेमवर्क का उपयोग करके आपको एपीआई सीखना होगा और फ्रेमवर्क से बंधे रहना चाहिए जो मानक का हिस्सा नहीं है।

10

तो, यदि आप एक ढांचे की तलाश में हैं, तो आप logback-audit आज़मा सकते हैं। यह उन लोगों द्वारा है जो जावा लॉगिंग लाइब्रेरी के पीछे हैं, logback

+0

धन्यवाद! मैं इसे ढूंढ रहा था ... – krtek

+3

एनबी: लॉगबैक-ऑडिट एक वाणिज्यिक सॉफ्टवेयर है –