For full support of Cloud Logging and structured logging, use Logger. The console methods
serialize the objects to strings and do not support jsonPayload as part of the structured
logging LogEntry.
functionmeasuringExecutionTime(){constlabel="myFunction() time";// Labels the timing log entry.console.time(label);// Starts the timer.try{myFunction();// 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.}functionmyFunction(){// ...}
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-12-02 UTC."],[[["\u003cp\u003eThe \u003ccode\u003econsole\u003c/code\u003e class enables developers to write logs to Google Cloud's Stackdriver Logging service with various severity levels (DEBUG, INFO, ERROR, WARNING).\u003c/p\u003e\n"],["\u003cp\u003eIt provides methods like \u003ccode\u003econsole.log()\u003c/code\u003e, \u003ccode\u003econsole.info()\u003c/code\u003e, \u003ccode\u003econsole.error()\u003c/code\u003e, and \u003ccode\u003econsole.warn()\u003c/code\u003e for logging messages with different severity.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can use \u003ccode\u003econsole.time()\u003c/code\u003e and \u003ccode\u003econsole.timeEnd()\u003c/code\u003e to measure the execution time of specific code blocks.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003econsole\u003c/code\u003e methods accept format strings and values for structured logging, allowing objects and other data types to be included in log entries.\u003c/p\u003e\n"],["\u003cp\u003eLog entries can be viewed and analyzed in the Stackdriver Logging interface for debugging and monitoring purposes.\u003c/p\u003e\n"]]],[],null,["console\n\nThis class allows the developer to write to the Execution log and to [Google Cloud Logging](https://cloud.google.com/logging) if the script is associated with\na [standard\nCloud Project](https://developers.google.com/apps-script/guides/cloud-platform-projects#standard).\n\nFor full support of Cloud Logging and structured logging, use [Logger](/apps-script/reference/base/logger). The `console` methods\nserialize the objects to strings and do not support `json``Payload` as part of the structured\nlogging [`Log``Entry`](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry).\n\n```javascript\nfunction measuringExecutionTime() {\n const label = \"myFunction() time\"; // Labels the timing log entry.\n console.time(label); // Starts the timer.\n try {\n myFunction(); // Function to time.\n } catch (e) {\n // Logs an ERROR message.\n console.error(\"myFunction() yielded an error: \" + e);\n }\n console.timeEnd(label); // Stops the timer, logs execution duration.\n}\n\nfunction myFunction() {\n // ...\n}\n``` \n\nMethods\n\n| Method | Return type | Brief description |\n|-----------------------------------------------------------|-------------|------------------------------------------------------------------------|\n| [error()](#error()) | `void` | Outputs a blank ERROR level message to Stackdriver Logging. |\n| [error(formatOrObject, values)](#error(Object,Object...)) | `void` | Outputs an ERROR level message to Stackdriver Logging. |\n| [info()](#info()) | `void` | Outputs blank INFO level message to Stackdriver Logging. |\n| [info(formatOrObject, values)](#info(Object,Object...)) | `void` | Outputs an INFO level message to Stackdriver Logging. |\n| [log()](#log()) | `void` | Outputs a blank DEBUG level message to Stackdriver Logging. |\n| [log(formatOrObject, values)](#log(Object,Object...)) | `void` | Outputs a DEBUG level message to Stackdriver Logging. |\n| [time(label)](#time(String)) | `void` | Starts a timer you can use to track how long an operation takes. |\n| [timeEnd(label)](#timeEnd(String)) | `void` | Stops a timer that was previously started by calling `console.time()`. |\n| [warn()](#warn()) | `void` | Outputs a blank WARNING level message to Stackdriver Logging. |\n| [warn(formatOrObject, values)](#warn(Object,Object...)) | `void` | Outputs a WARNING level message to Stackdriver Logging. |\n\nDetailed documentation \n\n`error()` \nOutputs a blank ERROR level message to Stackdriver Logging.\n\n*** ** * ** ***\n\n`error(formatOrObject, values)` \nOutputs an ERROR level message to Stackdriver Logging.\n\nParameters\n\n| Name | Type | Description |\n|----------------------|-------------|-------------------------------------------------------------------------------------------------------------------------------------------|\n| `format``Or``Object` | `Object` | a string containing zero or more substitution strings, or a JavaScript object to be logged as a JavaScript object if no other parameters. |\n| `values` | `Object...` | objects with which to replace substitution strings within the message. This gives you additional control over the format of the output. |\n\n*** ** * ** ***\n\n`info()` \nOutputs blank INFO level message to Stackdriver Logging.\n\n*** ** * ** ***\n\n`info(formatOrObject, values)` \nOutputs an INFO level message to Stackdriver Logging.\n\nParameters\n\n| Name | Type | Description |\n|----------------------|-------------|-------------------------------------------------------------------------------------------------------------------------------------------|\n| `format``Or``Object` | `Object` | a string containing zero or more substitution strings, or a JavaScript object to be logged as a JavaScript object if no other parameters. |\n| `values` | `Object...` | objects with which to replace substitution strings within the message. This gives you additional control over the format of the output. |\n\n*** ** * ** ***\n\n`log()` \nOutputs a blank DEBUG level message to Stackdriver Logging.\n\n*** ** * ** ***\n\n`log(formatOrObject, values)` \nOutputs a DEBUG level message to Stackdriver Logging.\n\nParameters\n\n| Name | Type | Description |\n|----------------------|-------------|-------------------------------------------------------------------------------------------------------------------------------------------|\n| `format``Or``Object` | `Object` | a string containing zero or more substitution strings, or a JavaScript object to be logged as a JavaScript object if no other parameters. |\n| `values` | `Object...` | objects with which to replace substitution strings within the message. This gives you additional control over the format of the output. |\n\n*** ** * ** ***\n\n`time(label)` \nStarts a timer you can use to track how long an operation takes.\n\nParameters\n\n| Name | Type | Description |\n|---------|----------|---------------------------------|\n| `label` | `String` | The name to give the new timer. |\n\n*** ** * ** ***\n\n`time``End(label)` \nStops a timer that was previously started by calling `console.time()`. The time duration\nis logged in Stackdriver.\n\nParameters\n\n| Name | Type | Description |\n|---------|----------|--------------------------------|\n| `label` | `String` | the name of the timer to stop. |\n\n*** ** * ** ***\n\n`warn()` \nOutputs a blank WARNING level message to Stackdriver Logging.\n\n*** ** * ** ***\n\n`warn(formatOrObject, values)` \nOutputs a WARNING level message to Stackdriver Logging.\n\nParameters\n\n| Name | Type | Description |\n|----------------------|-------------|-------------------------------------------------------------------------------------------------------------------------------------------|\n| `format``Or``Object` | `Object` | a string containing zero or more substitution strings, or a JavaScript object to be logged as a JavaScript object if no other parameters. |\n| `values` | `Object...` | objects with which to replace substitution strings within the message. This gives you additional control over the format of the output. |"]]