Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Data Logging Service in Google Sheets (Node.js)

CI Quality Gate Status npm version npm bundle size SourceRank Depfu Snyk Vulnerabilities for npm package npm NPM

A simple Node.js module for logging in Google Sheets.



Install from command line:

npm install --save google-sheets-logger


Install via package.json:

Add the following to your package.json file under dependencies

"google-sheets-logger": "1.0.2"

Basic Usage

  • Create a Google Sheets File and give access to the Service Account as described in the Authentcation secion.

  • Add the following headers (case-sensitive) to your sheet:

    • Log Id
    • Log Message
    • Log Time
  • Import the module and use as shown below.

var GoogleSheetLogger = require("google-sheets-logger");
var creds = require("./google-generated-creds.json");

// Spreadsheet key is the long id in the sheets URL
var Logger = new GoogleSheetLogger("<Spreadsheet Key>", creds);

Logger.log("1", "Sample Log Message", "2019-10-08 12:49:44");

// When Timestamp is not passed, it adds the current time as the Timestamp of the Log Message by default.
Logger.log("1", "Sample Log Message with no Timestamp");

// To add logs in sheets other than the first one of your workbook, pass the sheet index as the 4th argument.
// Index starts at 1.
Logger.log("1", "Sample Log Message", "2019-10-08 12:49:44", 3);


IMPORTANT: Google recently deprecated their ClientLogin (username+password) access, so things are slightly more complicated now. Older versions of this module supported it, so just be aware that things changed.

Service Account (recommended method)

This is a 2-legged oauth method and designed to be "an account that belongs to your application instead of to an individual end user". Use this for an app that needs to access a set of documents that you have full access to. (read more)

Setup Instructions

  1. Go to the Google Developers Console
  2. Select your project or create a new one (and then select it)
  3. Enable the Drive API for your project
  • In the sidebar on the left, expand APIs & auth > APIs
  • Search for "drive"
  • Click on "Drive API"
  • click the blue "Enable API" button
  1. Create a service account for your project
  • In the sidebar on the left, expand APIs & auth > Credentials
  • Click blue "Add credentials" button
  • Select the "Service account" option
  • Select "Furnish a new private key" checkbox
  • Select the "JSON" key type option
  • Click blue "Create" button
  • your JSON key file is generated and downloaded to your machine (it is the only copy!)
  • note your service account's email address (also available in the JSON key file)
  1. Share the doc (or docs) with your service account using the email noted above

Further possibilities & to-do

  • Enable logging on public sheets.
  • Create Header automatically using the module.



Google Sheets Logger is published under the MIT license. For more information, see the accompanying LICENSE file.


If you find this package useful, please star the project on Github.

And, if you are willing to buy me a coffee, that would be awesome. :)