2011-10-28 8 views
8

जब आप IntelliJ के अंदर कोई सर्वर चलाते हैं तो आप स्क्रीन के नीचे विंडो में कंसोल आउटपुट देख सकते हैं।क्या IntelliJ में कंसोल आउटपुट में क्लिक करने योग्य क्लास नाम होना संभव है?

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

धन्यवाद :)

उत्तर

5

वहाँ है। ऑनलाइन मदद http://www.jetbrains.com/idea/webhelp/setting-log-options.html

से लिया आप तृतीय-पक्ष लॉगिंग उपकरण का उपयोग कर रहे हैं, तो आप, संदेश के उत्पादन बनाने के लिए चाहते हो सकता है कि नकल करता है (स्टैकट्रेस लाइन के लिए में के रूप में स्रोत कोड के लिए एक मानक लिंकेज। (:))। इसके लिए, आपको अपने log.xml कॉन्फ़िगरेशन फ़ाइल में विशिष्ट रूपांतरण पैटर्न जोड़ना चाहिए। उदाहरण के लिए, एक log4j रूपांतरण पैटर्न में इस

<param name="ConversionPattern" value="%-5p - [%-80m] - at %c.%M(%F:%L)%n"/> 

होगा हालांकि पैदा करता है उत्पादन पूरी तरह से योग्य नाम, विधि के नाम आदि

+0

आधिकारिक दस्तावेज कम से कम आवश्यकतानुसार अस्पष्ट है (जो यहां प्रासंगिक होगा) –

2

आप पेट के द्वारा अलग लाइन नंबर, या तो पूर्ण पथ या पथ अपनी परियोजना स्रोत जड़ों के सापेक्ष के साथ अपने स्वयं output filters या प्रिंट फ़ाइल पथ को परिभाषित कर सकते हैं।

कस्टम आउटपुट फ़िल्टर निम्न चर का उपयोग कर सकता है: $FILE_PATH$, $LINE$

+0

इस के साथ चारों ओर खेला लिए काम किया। ऐसा प्रतीत होता है कि वास्तव में केवल उन स्रोतों को हाइलाइट किया गया है। मैं मावेन निर्भरताओं के लिए भी स्रोतों को डाउनलोड करना चाहता हूं। क्या यह संभव है? –

18

इंटेलीजे 14 के रूप में और के माध्यम से खुदाई करने के लिए वैकल्पिक के साथ काफी बदसूरत है इंटेलीजे सेटिंग्स, कुछ परीक्षण और त्रुटि से पता चला कि कंसोल में कम से कम एक . से पहले पैटर्न

(anyfile.ext:line) 

के साथ कुछ भी कर दिया जाता है फ़ाइल लिंक पर यदि उस नाम से ज्ञात कोई फ़ाइल है, उदा। .(Whatever.java:55), पुस्तकालयों को छोड़कर कार्यक्षेत्र में।

मैं लॉगबैक का उपयोग कर रहा हूं। तो पर मेरी logback.xml में कम से कम मेरी वर्गों के लिए लिंक प्राप्त करने मैं अपने संदेश पैटर्न में शामिल

.\(%class{0}.java:%line\) 
  • .\( \) -> डॉट फ़ाइल नाम पूर्व में होना चाहिए: लाइन पैटर्न और फ़ाइल नाम: लाइन पैटर्न में संलग्न कोष्ठक। लॉगबैक के लिए इस मामले में बचने के लिए शाब्दिक कोष्ठक की आवश्यकता होती है।
  • %class{0} -> बस एक पैकेज के बिना classname
  • .java -> तो यह है कि यह पूरा फ़ाइल नाम से मेल खाता है
  • :%line -> कोड

वास्तविकता में की लॉगिंग लाइन है, मैं अन्य बातों है जिसमें (filename:line) भाग से पहले कम से कम एक . शामिल होता है, इसलिए इसे इंटेलिजे द्वारा भी उठाया जा रहा है।

<pattern>%highlight(%-5level) %d{yyyy-MM-dd'T'HH:mm:ss.SSS} %yellow([%thread]) %blue(%logger{36}\(%class{0}.java:%line\)) %msg%n</pattern> 
+0

धन्यवाद, बढ़िया खोज! – Hejazi

+0

धन्यवाद, धन्यवाद, बहुत बहुत धन्यवाद !!!!!!! – varantes

+0

इसके साथ आप अपने स्वयं के वर्गों के लिए केवल क्लिक करने योग्य लिंक प्राप्त करते हैं, मैं किसी भी वर्ग पर क्लिक करने में सक्षम होने के लिए पैटर्न के अंत में% कॉलर {1} जोड़ना पसंद करता हूं। –

0

चीजों को बनाने के लिए वास्तव में काम करने के लिए आपको पूर्ण स्टैकट्रैक नोटेशन का अनुपालन करने की आवश्यकता है।बस एक डॉट डालने के लिए पर्याप्त नहीं है "।" ब्रैकेट के सामने। यदि आपके पास एक ही नाम के साथ दो वर्ग हैं लेकिन अलग-अलग पैकेज हैं, तो इंटेलिजे पहले पाये जाने वाले पहले का चयन करेगा। इस मामले में भी इस काम को ठीक से प्राप्त करने के लिए आपको

पूरी तरह से सत्यापित क्लासनाम + "लिखना होगा। + MethodName + "(" + simpleclassname + "जावा:" + LineNumber + ")"

आप न जानते का उपयोग कर लाइन नंबर हैं ": 1" मुझे

संबंधित मुद्दे