लॉग इन हो रहा है

किसी भी तरह का ऐप्लिकेशन डेवलप करते समय, आप अक्सर मदद करने के लिए जानकारी लॉग करना चाहते हैं डेवलपमेंट के दौरान गड़बड़ियों का विश्लेषण करना, ग्राहक समस्याओं की पहचान और उनका निदान करना, और दूसरे उद्देश्यों के लिए भी ऐसा ही किया जा सकता है.

Apps Script में लॉग करने के लिए, तीन अलग-अलग तरीके मिलते हैं:

  • पहले से मौजूद Apps Script एक्ज़ीक्यूशन लॉग. यह लॉग लाइटवेट है और रीयल टाइम में स्ट्रीम होता है, लेकिन यह कम समय लगा.

  • Cloud Logging इंटरफ़ेस में डेवलपर कंसोल, जो लॉग प्रदान करने के बाद कई दिनों तक बने रहते हैं बनाना.

  • गड़बड़ी की रिपोर्ट करना इंटरफ़ेस में होती है. यह आपके ऐप्लिकेशन में होने वाली गड़बड़ियों को इकट्ठा करके उन्हें रिकॉर्ड करती है जब आपकी स्क्रिप्ट चल रही हो.

इन सेक्शन में इनके बारे में बताया गया है. इन तरीकों के अलावा, की मदद से खुद का एक लॉगर कोड भी बनाया जा सकता है, जो उदाहरण के लिए, लॉग करने वाली स्प्रेडशीट में या JDBC डेटाबेस का इस्तेमाल करें.

Apps Script एक्ज़ीक्यूशन लॉग का इस्तेमाल करें

Apps Script में लॉग इन करने का एक बुनियादी तरीका, पहले से मौजूद ऐप्लिकेशन का इस्तेमाल करना है एक्ज़ीक्यूशन लॉग. इन लॉग को देखने के लिए, सबसे ऊपर संपादक के नीचे, एक्ज़िक्यूशन लॉग पर क्लिक करें. जब आप कोई फ़ंक्शन चलाते हैं या डीबगर, रीयल टाइम में लॉग स्ट्रीम.

आपके पास Logger या फिर इसमें console लॉगिंग सेवाएं पहले से मौजूद एक्ज़ीक्यूशन लॉग.

ये लॉग, डेवलपमेंट और डीबगिंग के दौरान आसान जांच के लिए हैं, और ये ज़्यादा लंबे समय तक टिके नहीं रहते.

उदाहरण के लिए, इस फ़ंक्शन पर विचार करें:

/**
 * Logs Google Sheet information.
 * @param {number} rowNumber The spreadsheet row number.
 * @param {string} email The email to send with the row data.
 */
function emailDataRow(rowNumber, email) {
  console.log('Emailing data row ' + rowNumber + ' to ' + email);
  try {
    const sheet = SpreadsheetApp.getActiveSheet();
    const data = sheet.getDataRange().getValues();
    const rowData = data[rowNumber - 1].join(' ');
    console.log('Row ' + rowNumber + ' data: ' + rowData);
    MailApp.sendEmail(email, 'Data in row ' + rowNumber, rowData);
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log('Failed with error %s', err.message);
  }
}

जब इस स्क्रिप्ट को इनपुट "2" के साथ चलाया जाता है और "john@example.com" यह नीचे दिए गए लॉग लिखे गए हैं:

[16-09-12 13:50:42:193 PDT] डेटा की पंक्ति 2 को john@example.com पर ईमेल किया जा रहा है
[16-09-12 13:50:42:271 PDT] पंक्ति 2 का डेटा: लागत 103.24

Cloud Logging

Apps Script, Google Cloud Platform (GCP) का कुछ ऐक्सेस भी देती है Cloud Logging सेवा. आसानी से अपने कैलेंडर में जोड़ें. कई दिनों तक बनी रहने वाली लॉगिंग की ज़रूरत होती है या ज़्यादा जटिल लॉगिंग की ज़रूरत होती है के लिए डिज़ाइन किया गया है, तो क्लाउड लॉगिंग का विकल्प चुनें. क्लाउड लॉग करने के कोटा और सीमाएं देखें डेटा के रखरखाव और कोटा की अन्य जानकारी के लिए.

अगर आपको डेटा लॉग करने के लिए ज़्यादा कोटा चाहिए, तो Google Cloud Platform के कोटे का अनुरोध सबमिट करें. इसके लिए ज़रूरी है कि आपके पास Cloud Platform प्रोजेक्ट का इस्तेमाल करता है.

क्लाउड लॉगिंग का उपयोग करना

क्लाउड लॉग, Google Cloud प्रोजेक्ट से अटैच होते हैं आपके ऐप्लिकेशन स्क्रिप्ट से जुड़ी होगी. आपके पास इनका आसान वर्शन देखने का विकल्प है Apps Script डैशबोर्ड में लॉग इन कर सकते हैं.

क्लाउड लॉगिंग और इसकी क्षमताओं का पूरा उपयोग करने के लिए, स्टैंडर्ड Google Cloud प्रोजेक्ट को अपने स्क्रिप्ट प्रोजेक्ट के साथ कनेक्ट करने की कोशिश करें. इससे आपको क्लाउड लॉग को सीधे GCP कंसोल साथ ही, आपको देखने और फ़िल्टर करने के ज़्यादा विकल्प मिलते हैं.

डेटा को लॉग करते समय, अपनी निजता को सुरक्षित रखें उपयोगकर्ता के बारे में जानकारी, जैसे कि ईमेल पते. क्लाउड लॉग हैं अपने-आप इससे लेबल किया गया सक्रिय उपयोगकर्ता कुंजियां का इस्तेमाल ज़रूरत पड़ने पर किसी खास उपयोगकर्ता के लॉग मैसेज का पता लगाने के लिए किया जा सकता है.

स्ट्रिंग, फ़ॉर्मैट की गई स्ट्रिंग, और यहां तक कि JSON ऑब्जेक्ट भी लॉग किए जा सकते हैं. Apps Script से मिलने वाले फ़ंक्शन console सेवा.

नीचे दिए गए उदाहरण में, console को इस्तेमाल करने का तरीका बताया गया है क्लाउड ऑपरेशंस में जानकारी लॉग करने के लिए सेवा.

/**
 * Logs the time taken to execute 'myFunction'.
 */
function measuringExecutionTime() {
  // A simple INFO log message, using sprintf() formatting.
  console.info('Timing the %s function (%d arguments)', 'myFunction', 1);

  // Log a JSON object at a DEBUG level. The log is labeled
  // with the message string in the log viewer, and the JSON content
  // is displayed in the expanded log structure under "jsonPayload".
  const parameters = {
    isValid: true,
    content: 'some string',
    timestamp: new Date()
  };
  console.log({message: 'Function Input', initialData: parameters});
  const label = 'myFunction() time'; // Labels the timing log entry.
  console.time(label); // Starts the timer.
  try {
    myFunction(parameters); // Function to time.
  } catch (e) {
    // Logs an ERROR message.
    console.error('myFunction() yielded an error: ' + e);
  }
  console.timeEnd(label); // Stops the timer, logs execution duration.
}

सक्रिय उपयोगकर्ता कुंजियां

अस्थायी सक्रिय उपयोगकर्ता कुंजियां, यूनीक उपयोगकर्ताओं को पहचानने का आसान तरीका देती हैं क्लाउड लॉग एंट्री में, इन उपयोगकर्ताओं की पहचान ज़ाहिर नहीं की जाती है. कुंजियां हैं. अतिरिक्त सुरक्षा के लिए, इसे महीने में करीब एक बार बदला जाता है. क्या उपयोगकर्ता, डेवलपर को अपनी पहचान के बारे में बताता है. उदाहरण के लिए, रिपोर्टिंग करते समय कोई समस्या.

अस्थायी सक्रिय उपयोगकर्ता कुंजियां, ईमेल जैसे लॉग किए गए आइडेंटिफ़ायर से बेहतर होती हैं पते, क्योंकि:

  • आपको अपने लॉग में कुछ भी जोड़ने की ज़रूरत नहीं है; वे वहां पहले से ही मौजूद हैं!
  • इन्हें उपयोगकर्ता की अनुमति की ज़रूरत नहीं होती.
  • ये उपयोगकर्ता की निजता की सुरक्षा करते हैं.

Cloud लॉग एंट्री में, कुछ समय के लिए चालू उपयोगकर्ता कुंजियां ढूंढने के लिए, Google Cloud Console में अपने Cloud लॉग देखें. आप ऐसा केवल तभी कर सकते हैं, जब आपका स्क्रिप्ट प्रोजेक्ट किसी स्टैंडर्ड Google Cloud प्रोजेक्ट जिनका ऐक्सेस आपके पास है. कंसोल में Google Cloud प्रोजेक्ट खोलने के बाद, अपनी दिलचस्पी की कोई लॉग एंट्री चुनें और उसे देखने के लिए उसे बड़ा करें मेटाडेटा > लेबल > script.googleapis.com/user_key.

कॉल करके भी, कुछ समय के लिए चालू उपयोगकर्ता कुंजी हासिल की जा सकती है Session.getTemporaryActiveUserKey() आपकी स्क्रिप्ट में. इस तरीके का इस्तेमाल करने का एक तरीका यह है कि उपयोगकर्ता को कुंजी दिखाई जाए जब वे आपकी स्क्रिप्ट चला रहे हों. इसके बाद, लोग अपनी कुंजियां शामिल कर सकते हैं समस्याओं की शिकायत करें. इससे आपको सही लॉग पहचानने में मदद मिलेगी.

अपवाद लॉगिंग

अपवाद के तौर पर लॉग करने पर, आपके स्क्रिप्ट प्रोजेक्ट कोड में ऐसे अपवाद भेजे जाते हैं जिन्हें मैनेज नहीं किया जा सकता साथ ही, Cloud Logging में बदल जाएगा.

अपवाद लॉग देखने के लिए, नीचे दिया गया तरीका अपनाएं:

  1. Apps Script प्रोजेक्ट खोलें.
  2. बाईं ओर, लागू करना पर क्लिक करें.
  3. सबसे ऊपर, फ़िल्टर जोड़ें > पर क्लिक करें स्टेटस.
  4. समस्या ठीक नहीं हुई और समयसीमा खत्म हो गई चेकबॉक्स चुनें.

लॉग किए गए अपवादों को GCP कंसोल में भी देखा जा सकता है अगर आपका स्क्रिप्ट प्रोजेक्ट स्टैंडर्ड Google Cloud प्रोजेक्ट जिनका ऐक्सेस आपके पास है.

अपवाद लॉगिंग सक्षम करें

नए प्रोजेक्ट के लिए, अपवाद को लॉग करने की सुविधा डिफ़ॉल्ट रूप से चालू होती है. अपवाद को चालू करने के लिए अपने पुराने प्रोजेक्ट लॉग करते समय, नीचे दिया गया तरीका अपनाएं:

  1. स्क्रिप्ट प्रोजेक्ट खोलें.
  2. बाईं ओर, प्रोजेक्ट सेटिंग पर क्लिक करें .
  3. Cloud Operations के लिए, जिन अपवादों की जानकारी नहीं मिली है उन्हें लॉग करें चेकबॉक्स को चुनें.

रिपोर्ट करते समय गड़बड़ी हुई

अपवाद के तौर पर लॉग करने की सुविधा, इसके साथ अपने-आप इंटिग्रेट हो जाती है Cloud की गड़बड़ियों की रिपोर्ट करना, यह सेवा आपकी स्क्रिप्ट में हुई गड़बड़ियों को इकट्ठा करके दिखाती है. आप Google Cloud Console में, क्लाउड से जुड़ी गड़बड़ी की रिपोर्ट देखें. अगर आपको "गड़बड़ी की रिपोर्ट करने की सुविधा सेट अप करें" का मैसेज दिखता है, तो ऐसा इसलिए है क्योंकि आपकी स्क्रिप्ट ने अभी तक कोई अपवाद लॉग नहीं किया है. इसके अलावा किसी सेटअप की ज़रूरत नहीं है अपवाद लॉगिंग को सक्षम किया जा रहा है.

लॉग करने की ज़रूरी शर्तें

पहले से मौजूद एक्ज़ीक्यूशन लॉग का इस्तेमाल करने के लिए कोई ज़रूरत नहीं है.

क्लाउड लॉग का आसान वर्शन यहां देखा जा सकता है: Apps Script डैशबोर्ड. हालांकि, क्लाउड लॉगिंग और गड़बड़ी की रिपोर्टिंग का ज़्यादा से ज़्यादा फ़ायदा लें को स्क्रिप्ट के GCP प्रोजेक्ट में ले जाया जाएगा. ऐसा सिर्फ़ तब किया जा सकता है, जब आपका स्क्रिप्ट प्रोजेक्ट स्टैंडर्ड Google Cloud प्रोजेक्ट का इस्तेमाल किया जा रहा हो.