हम एक दिलचस्प मुद्दे में भाग रहे हैं जिसे हमने हमारे सिस्टम के तनाव परीक्षण करते समय देखा। हम log4j (जेबीओएसएस में) का उपयोग कर रहे हैं हमारे लॉगिंग के लिए बहुत भारी है। यहाँ कुछ लॉगिंग हम एवेन्यूLog4j: क्या यह मल्टीथ्रेड कॉल के लिए सिंक्रनाइज़ किया गया है?
void someFunction()
{
Log.info("entered some function");
...
Log.info("existed some function");
}
के एक अनुभवहीन उदाहरण है अब दिलचस्प बात यह हमने देखा है कि अगर हम इस समारोह के खिलाफ 100 धागे का शुभारंभ; Log.info() कॉल प्रति थ्रेड को अवरुद्ध कर रहा है .. जिसका अर्थ है थ्रेड 2 थ्रेड 1 के लिए "Log.info" कॉल को समाप्त करने का इंतजार कर रहा है। थ्रेड 100 के मामले में; यह काफी लंबे समय तक इंतजार कर रहा है .. हम मूल फ़ाइल लॉगर का उपयोग कर रहे हैं।
क्या यह ज्ञात मुद्दा है?
इसके अलावा, सही लॉग स्तरों का उपयोग करें:
'लॉग' एक कक्षा है? या 'लॉगर' प्रकार का ऑब्जेक्ट? – Tudor
लॉग लॉगरफ़ैक्टरी – shergill
से प्राप्त प्रकार लॉगर का ऑब्जेक्ट ठीक है धन्यवाद। बस सुनिश्चित करना चाहता था। मैं 'लॉगर' के स्रोत कोड के बावजूद जा रहा था और पाया कि वास्तव में वहां 'सिंक्रनाइज़' अनुभाग है। – Tudor