Günlük Kaydı

Herhangi bir uygulama geliştirirken genellikle yardımcı olması için bilgileri geliştirme sırasında hataları teşhis etmek, müşteri sorunlarını belirleyip teşhis etmek, başka amaçlar için kullanabilirsiniz.

Apps Komut Dosyası, günlük kaydı için üç farklı mekanizma sağlar:

  • Yerleşik Apps Komut Dosyası yürütme günlüğü. Bu günlük kaydı basittir ve gerçek zamanlı olarak akış yapar, ancak yalnızca bir süre devam eder. çok zaman harcıyor.

  • Şuradaki Cloud Logging arayüzü: sonra da yıllar boyunca görüntülenen günlükler sağlayan Google Play Geliştirici Konsolu çok önemli.

  • Error Reporting arayüzü uygulaması hakkında daha fazla bilgi edinebileceğiniz kontrol edebilirsiniz.

Bunlar aşağıdaki bölümlerde açıklanmıştır. Bu mekanizmalara ek olarak kendi günlük kaydedici kodunuzu da oluşturabilirsiniz. Örneğin, bu kodla bir E-tabloya veya JDBC veritabanı.

Apps Komut Dosyası yürütme günlüğünü kullanma

Apps Komut Dosyası'nda oturum açmayla ilgili temel yaklaşımlardan biri, yerleşik yürütme günlüğü oluşturur. Bu günlükleri görüntülemek için üst taraftaki Editor'da (Yürütme günlüğü) Execution log'u (Yürütme günlüğü) tıklayın. Bir işlev çalıştırdığınızda veya günlük akışının gerçek zamanlı olarak yürütülmesini sağlar.

Logger veya console günlük kaydı hizmetleri yerleşik yürütme günlüğü olur.

Bu günlükler, geliştirme ve hata ayıklama sırasında basit kontroller yapmak amacıyla kullanılır. ve çok uzun sürmez.

Örneğin, şu işlevi ele alalım:

utils/logging.gs
/**
 * 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);
  }
}

Bu komut dosyası "2" girdileriyle çalıştırıldığında ve "can@example.com" "the" aşağıdaki günlükler yazılır:

[16-09-12 13:50:42:193 PDT] 2. veri satırını john@example.com adresine e-postayla gönderme
[16-09-12 13:50:42:271 PDT] Satır 2 veri: Maliyet 103,24

Cloud Logging

Apps Komut Dosyası, Google Cloud Platform'a (GCP) kısmi erişim de sunar. Cloud Logging hizmeti için geçerlidir. Google Takvim widget'ını Birkaç gün boyunca devam eden veya daha karmaşık bir günlük kaydı gerektiren günlük kaydı gerektiren durumlar çok kullanıcılı üretim ortamı için bir çözüm bulmanız gerekiyorsa, Cloud Logging seçim. Cloud Logging kota ve sınırları sayfasını inceleyin. başlıklı makaleyi inceleyin.

Daha fazla günlük kaydı kotasına ihtiyacınız varsa Google Cloud Platform kota isteği gönderin. Bunun için Cloud Platform projesi kullanır.

Cloud Logging'i kullanma

Cloud günlükleri Google Cloud projesine eklenir. Google Apps Komut Dosyanızla ilişkilidir. Bu reklamların basitleştirilmiş bir sürümünü Apps Komut Dosyası kontrol panelinde bulabilirsiniz.

Cloud Logging'den ve özelliklerinden tam olarak yararlanmak için standart Google Cloud projesi komut dosyası projenizle bağdaştırın. Bu sayede Cloud günlüklerine doğrudan GCP Konsolu ve daha fazla görüntüleme ve filtreleme seçeneği sunar.

Günlüğe kaydederken kişisel bilgilerinizi kaydetmemek ve kullanıcı hakkındaki bilgiler (ör. e-posta adresleri). Cloud günlükleri şununla otomatik olarak etiketlenir: etkin kullanıcı anahtarları Belirli bir kullanıcının günlük mesajlarını gerektiğinde bulmak için kullanabilirsiniz.

Dizeleri, biçimlendirilmiş dizeleri ve hatta tarafından sağlanan işlevler console hizmeti ile ilişkilendirilmiş hizmetler.

Aşağıdaki örnekte console öğesinin nasıl kullanılacağı gösterilmektedir hizmeti kullanabilirsiniz.

utils/logging.gs
/**
 * 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.
}

Etkin kullanıcı anahtarları

Geçici etkin kullanıcı anahtarları, Kullanıcıların kimliklerini açıklamadan Cloud Logging girişlerine erişebilir. Anahtarlar komut dosyası başınadır ve ek güvenlik sağlamak için ayda yaklaşık bir kez değiştirilir. Kullanıcı, kimliğini geliştiriciye ifşa etmeli (örneğin, raporlama sırasında) bir sorun olabilir.

Geçici etkin kullanıcı anahtarları, e-posta gibi günlük kaydı tanımlayıcılarından daha üstündür çünkü:

  • Günlük kaydınıza herhangi bir şey eklemeniz gerekmez. zaten varlar.
  • Kullanıcıların yetkilendirmesi gerekmez.
  • Kullanıcı gizliliğini korurlar.

Cloud Log girişlerinizde geçici etkin kullanıcı anahtarlarını bulmak için: Cloud günlüklerinizi Google Cloud konsolunda görüntüleyin. Bunu yalnızca komut dosyası projenizde standart Google Cloud projesi erişim sahibisiniz. Konsolda Google Cloud projesini açtıktan sonra istediğiniz günlük girişini seçin ve görüntülemek için genişletin metadata > etiketler > script.googleapis.com/user_key.

Geçici etkin kullanıcı anahtarını, Session.getTemporaryActiveUserKey() komut dosyanıza ekleyin. Bu yöntemi kullanmanın bir yolu, anahtarı kullanıcıya birlikte çalışırlar. Ardından kullanıcılar anahtarlarını dahil etmeyi seçebilir kullanarak alakalı günlükleri tespit edebilirsiniz.

İstisna kaydı

İstisna günlüğü, komut dosyası proje kodunuzda işlenmemiş istisnaları gönderir Cloud Logging'e gönderilir.

İstisna günlüklerini görüntülemek için aşağıdaki adımları uygulayın:

  1. Apps Komut Dosyası projesini açın.
  2. Sol tarafta, Yürütme işlemleri'ni tıklayın.
  3. Üst tarafta Filtre ekle > Durum.
  4. Başarısız ve Zaman aşımına uğradı onay kutularını işaretleyin.

Günlüğe kaydedilen istisnaları GCP Console'da da görüntüleyebilirsiniz. komut dosyası projenizde bir standart Google Cloud projesi erişim sahibisiniz.

İstisna kaydını etkinleştir

İstisna günlüğü, yeni projeler için varsayılan olarak etkindir. İstisnayı etkinleştirmek için Daha eski projeler için günlük kaydını tutmak istiyorsanız aşağıdaki adımları uygulayın:

  1. Komut dosyası projesini açın.
  2. Solda Proje Ayarları'nı tıklayın. .
  3. Yakalanamayan istisnaları Cloud Operations'a kaydet onay kutusunu işaretleyin.

Error Reporting

İstisna günlüğü, Cloud Hata Bildirimi komut dosyanızda oluşturulan hataları toplayan ve görüntüleyen bir hizmet. Şunları yapabilirsiniz: Cloud hata raporlarınızı Google Cloud konsolunda görüntüleyin. "Error Reporting'i Ayarla" istemini görürseniz çünkü bu komut dosyanız henüz herhangi bir istisna kaydetmedi. Şu süreden sonra kurulum gerekmez: istisna günlük kaydını etkinleştirme.

Günlük kaydı gereksinimleri

Yerleşik yürütme günlüğünün kullanılması için herhangi bir gereklilik yoktur.

Cloud günlüklerinin basitleştirilmiş bir sürümünü şurada görebilirsiniz: Apps Komut Dosyası kontrol paneli. Ancak, Erişebileceğiniz hata raporları ve Cloud Logging'den en iyi şekilde yararlanın komut dosyasının GCP projesine bağlayabilirsiniz. Bu yalnızca komut dosyası projenizde standart bir Google Cloud projesi kullanıyor.