iis - आईआईएस लॉग कहां मिल सकता है?




logging iis-7 diagnostics (9)

मैं एक तीसरे पक्ष से एक आवेदन स्थापित करने की कोशिश कर रहा हूं, जिसके लिए मेरे स्थानीय आईआईएस में एक सहायक वेबसाइट की मेजबानी की आवश्यकता है। मैंने अपनी वेबसाइट को बिल्कुल इंस्टॉल किया है जैसा कि उनके इंस्टॉल गाइड में बताया गया है, लेकिन मुझे कुछ समस्याएं आ रही हैं, और देखना है कि आईआईएस लॉग क्या कहना है। शर्मनाक रूप से पर्याप्त, समस्या यह है कि मुझे लॉग फाइल नहीं मिल रही हैं!

तो मेरा सवाल है: आईआईएस 7 स्टोर डिफ़ॉल्ट रूप से कहां लॉग करता है?


Answers

मुझे लगता है कि आईआईएस लॉगिंग के लिए डिफ़ॉल्ट जगह है: c:\inetpub\wwwroot\log\w3svc


लॉग फ़ाइलों के डिफ़ॉल्ट स्थान के लिए 100% सही उत्तर है ...

%SystemDrive%\inetpub\logs\LogFiles

हां आप इसे एक्सप्लोरर एड्रेस बार में दर्ज कर सकते हैं जो यह काम करेगा।

100% सुनिश्चित होने के लिए, आपको आईआईएस में वेबसाइट के लिए लॉगिंग देखने की आवश्यकता है।

https://docs.microsoft.com/en-us/iis/get-started/whats-new-in-iis-85/enhanced-logging-for-iis85

अर्थात

  1. ओआईएस प्रबंधक खोलें।
  2. कनेक्शन फलक में साइट या सर्वर का चयन करें,
  3. लॉगिंग डबल-क्लिक करें।
  4. साइट के लिए लॉग फ़ाइलों का स्थान निर्देशिका फ़ील्ड में पाया जा सकता है

संपादित करें: नीचे दी गई टिप्पणियों में एंडी द्वारा बताए गए अनुसार आपको यह सुनिश्चित करना होगा कि आईआईएस इंस्टॉल करते समय आपने HTTP लॉगिंग सक्षम करने के लिए चुना है, अन्यथा HTTP लॉगिंग उपलब्ध नहीं होगी।


विंडोज इवेंट लॉग आज़माएं, कुछ उपयोगी जानकारी हो सकती है


विंडोज इवेंट लॉग के लिए Tracing सक्षम करना बेहतर विकल्प हो सकता है। इसने मुझे अपनी खुद की वेब सेवा को ठीक करने के लिए आवश्यक जानकारी दी।


मेरा मानना ​​है कि यह जानने का एक आसान तरीका है कि आपके आईआईएस लॉग केवल एक डिफ़ॉल्ट स्थान ग्रहण करने के बजाय कहां हैं:

अपनी आईआईएस साइट पर जाएं, उदाहरण के लिए डिफ़ॉल्ट, उस पर क्लिक करें, और लॉगिंग सक्षम होने पर आपको दाईं ओर "लॉगिंग" देखना चाहिए:

इसे खोलें और आपको वहां फ़ोल्डर को देखना चाहिए:

आपका स्वागत है!


मुझे निम्नलिखित स्थान पर आईआईएस लॉग फाइलें मिली हैं।

सी: \ inetpub \ लॉग \ LogFiles \

जो मेरी समस्या को ठीक करने में मदद करता है।


ऐसा करने का एक आसान तरीका PowerShell का उपयोग कर रहा है, जैसे:

Get-Website yoursite | % { Join-Path ($_.logFile.Directory -replace '%SystemDrive%', $env:SystemDrive) "W3SVC$($_.id)" }

या केवल

Get-Website yoursite | % { $_.logFile.Directory, $_.id }

अगर आपको केवल अपने लिए जानकारी चाहिए और अपने मस्तिष्क में नतीजे को पार्स करने में कोई फर्क नहीं पड़ता :)।

बोनस अंक के लिए, संलग्न करें | ii एक्सप्लोरर में खोलने के पहले आदेश के लिए, या | gci फ़ोल्डर की सामग्री | gci करने के लिए | gci


मुझे लगता है कि एक्सेस लॉग के लिए डिफ़ॉल्ट जगह है

%SystemDrive%\inetpub\logs\LogFiles

अन्यथा, आईआईएस प्रबंधक के तहत जांचें, बाएं फलक पर कंप्यूटर का चयन करें, और मध्य फलक में, आईआईएस क्षेत्र में "लॉगिंग" के अंतर्गत जाएं। वहां आप सभी साइटों के लिए डिफ़ॉल्ट स्थान देखेंगे (हालांकि यह सभी साइटों पर अतिसंवेदनशील है)

आप भी देख सकते हैं

%SystemDrive%\Windows\System32\LogFiles\HTTPERR

जिसमें समान लॉग फाइलें होंगी जो केवल त्रुटियों का प्रतिनिधित्व करती हैं।


Heroku घटनाओं के समय-आदेशित धाराओं के रूप में लॉग व्यवहार करता है। विभिन्न कारणों से इस तरह के वातावरण में फाइल सिस्टम पर *.log फ़ाइलों तक पहुंच की सिफारिश नहीं की जाती है।

सबसे पहले, यदि आपके ऐप में एक से अधिक dyno हैं तो प्रत्येक लॉग फ़ाइल केवल आपके ऐप की घटनाओं में आंशिक दृश्य का प्रतिनिधित्व करती है। पूर्ण दृश्य प्राप्त करने के लिए आपको सभी फ़ाइलों को मैन्युअल रूप से एकत्र करना होगा।

दूसरा, हरोकू पर फाइल सिस्टम क्षणिक अर्थ है जब भी आपका डिनो पुनरारंभ होता है या स्थानांतरित होता है (जो दिन में लगभग एक बार होता है ) लॉग फाइलें खो जाती हैं। तो आप केवल एक दिन के दृश्य को उस एकल डिनो के लॉग में प्राप्त करते हैं।

आखिरकार, सीडर स्टैक पर heroku console चला रहा heroku console या यहां तक ​​कि heroku run bash भी आपको वर्तमान में चल रहे डायनो से कनेक्ट नहीं करता है। यह विशेष रूप से bash कमांड के लिए एक नया स्पॉन्स बनाता है। इसे एक-ऑफ प्रक्रिया कहा जाता है। इस प्रकार, आपको अपने अन्य डायनोस के लिए लॉग फाइल नहीं मिलेंगी जो कि उसके HTTP heroku run लिए उत्पन्न वास्तविक http प्रक्रियाओं को heroku run

Logging , और सामान्य रूप से दृश्यता, हेरोकू पर प्रथम श्रेणी के नागरिक हैं और इन मुद्दों को हल करने वाले कई टूल हैं। सबसे पहले, सभी dynos में एप्लिकेशन ईवेंट की वास्तविक समय स्ट्रीम देखने के लिए और एप्लिकेशन / स्टैक की सभी परतें आपके टर्मिनल पर पूंछ आउटपुट के लिए heroku logs -t कमांड का उपयोग करें।

$ heroku logs -t
2010-09-16T15:13:46-07:00 app[web.1]: Processing PostController#list (for 208.39.138.12 at 2010-09-16 15:13:46) [GET]
2010-09-16T15:13:46-07:00 app[web.1]: Rendering template within layouts/application
2010-09-16T15:13:46-07:00 heroku[router]: GET myapp.heroku.com/posts queue=0 wait=0ms service=1ms bytes=975
2010-09-16T15:13:47-07:00 app[worker.1]: 2 jobs processed at 16.6761 j/s, 0 failed ...

यह अभी आपके आवेदन के व्यवहार को देखने के लिए बहुत अच्छा काम करता है। यदि आप लंबे समय तक लॉग स्टोर करना चाहते हैं तो आप लॉग रिटेंशन, अलर्टिंग और ट्रिगर्स प्रदान करने वाले कई लॉगिंग ऐड-ऑन का उपयोग कर सकते हैं।

अंत में, यदि आप लॉग फाइलों को स्वयं स्टोर करना चाहते हैं तो आप हेरोोकू और पोस्ट-प्रोसेस / स्वयं विश्लेषण करने से ईवेंट की स्ट्रीम प्राप्त करने के लिए अपना स्वयं का devcenter.heroku.com/articles/logging#syslog_drains सेट कर सकते हैं।

सारांश: स्थैतिक लॉग फ़ाइलों को देखने के लिए heroku console या heroku run bash का उपयोग न करें। Heroku heroku logs या लॉगिंग ऐड-ऑन का उपयोग करके अपने ऐप के लिए heroku logs की लॉग इवेंट की स्ट्रीम में पाइप करें।





iis logging iis-7 diagnostics