Bunyan and Express
Stay organized with collections
Save and categorize content based on your preferences.
Demonstrates how to set up and use Bunyan with Cloud Logging in a Node.js Express application.
Explore further
For detailed documentation that includes this code sample, see the following:
Code sample
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],[],[],[],null,["# Bunyan and Express\n\nDemonstrates how to set up and use Bunyan with Cloud Logging in a Node.js Express application.\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [Setting Up Cloud Logging for Node.js](/logging/docs/setup/nodejs)\n\nCode sample\n-----------\n\n### Node.js\n\n\nTo learn how to install and use the client library for Logging, see\n[Logging client libraries](/logging/docs/reference/libraries).\n\n\nTo authenticate to Logging, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n // Imports the Google Cloud client library for Bunyan.\n const lb = require('https://cloud.google.com/nodejs/docs/reference/logging-bunyan/latest/overview.html');\n\n // Import express module and create an http server.\n const express = require('express');\n\n async function startServer() {\n const {logger, mw} = await lb.express.https://cloud.google.com/nodejs/docs/reference/logging-bunyan/latest/overview.html({\n logName: 'samples_express',\n });\n const app = express();\n\n // Install the logging middleware. This ensures that a Bunyan-style `log`\n // function is available on the `request` object. This should be the very\n // first middleware you attach to your app.\n app.use(mw);\n\n // Setup an http route and a route handler.\n app.get('/', (req, res) =\u003e {\n // `req.log` can be used as a bunyan style log method. All logs generated\n // using `req.log` use the current request context. That is, all logs\n // corresponding to a specific request will be bundled in the Stackdriver\n // UI.\n req.log.info('this is an info log message');\n res.send('hello world');\n });\n\n const port = process.env.PORT || 8080;\n\n // `logger` can be used as a global logger, one not correlated to any specific\n // request.\n https://cloud.google.com/nodejs/docs/reference/logging-bunyan/latest/logging-bunyan/express.middlewarereturntype.html.info({port}, 'bonjour');\n\n // Start listening on the http server.\n const server = app.listen(port, () =\u003e {\n console.log(`http server listening on port ${port}`);\n });\n\n app.get('/shutdown', (req, res) =\u003e {\n res.sendStatus(200);\n server.close();\n });\n }\n\n startServer();\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=logging)."]]