आप निश्चित रूप से इस समस्या को खत्म करने में बहुत अधिक समय लगा सकते हैं।
कैनोनिकल लॉगिंग कार्यान्वयन के साथ भाषाओं के लिए, बस हर वर्ग में सीधे कैनोनिकल लॉगर को तत्काल करें।
विहित कार्यान्वयन के बिना भाषाओं के लिए, एक लॉगिंग मुखौटा ढांचा खोजने की कोशिश करें और उससे चिपके रहें। slf4j जावा में एक अच्छा विकल्प है।
व्यक्तिगत रूप से मैं बल्कि एक ही ठोस लॉगिंग कार्यान्वयन के लिए छड़ी और सब कुछ syslog को भेजना होगा। सभी अच्छे लॉग विश्लेषण उपकरण कई ऐप सर्वर से एक विस्तृत रिपोर्ट में sysout लॉग को संयोजित करने में सक्षम हैं।
जब एक फ़ंक्शन हस्ताक्षर में एक या दो निर्भरता सेवाएं और साथ ही कुछ "वास्तविक" तर्क शामिल होते हैं, तो मैं निर्भरता को अंतिम स्थान देता हूं:
int calculateFooBarSum(int foo, int bar, IntegerSummationService svc)
चूंकि मेरे सिस्टम में केवल पांच या उससे कम ऐसी सेवाएं हैं, इसलिए मैं हमेशा यह सुनिश्चित करता हूं कि सभी फ़ंक्शन हस्ताक्षर में सेवाओं को एक ही क्रम में शामिल किया जाए। वर्णमाला क्रम किसी भी तरह अच्छा है। (एक तरफ: म्यूटेक्स हैंडलिंग के लिए इस पद्धतिगत दृष्टिकोण को बनाए रखने से डेडलॉक विकसित करने की आपकी संभावना कम हो जाएगी।)
यदि आप अपने आप को अपने ऐप में एक दर्जन से अधिक या निर्भरता का इंजेक्शन लगाते हैं, तो सिस्टम को संभवतः अलग-अलग सबसिस्टम में विभाजित करने की आवश्यकता है (मैं माइक्रोसर्विस कहूं?)।