Security News
RubyGems.org Adds New Maintainer Role
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
@google-cloud/logging
Advanced tools
The @google-cloud/logging package is a client library for Google Cloud Logging, part of Google Cloud's suite of services for storing, searching, analyzing, monitoring, and alerting on log data from Google Cloud and Amazon Web Services. It allows developers to integrate their applications with the Google Cloud Logging service easily, enabling them to send logs directly from their applications to the cloud.
Writing Log Entries
This feature allows users to write log entries to Google Cloud Logging. The code sample demonstrates how to create a log entry and write it to a specified log in Google Cloud.
const {Logging} = require('@google-cloud/logging');
const logging = new Logging();
const log = logging.log('my-log');
const metadata = {resource: {type: 'global'}};
const entry = log.entry(metadata, {message: 'Hello, world!'});
async function writeLog() {
await log.write(entry);
console.log('Logged: Hello, world!');
}
writeLog();
Listing Logs
This feature enables the listing of all logs in the Google Cloud Logging account. The code sample shows how to retrieve and print the names of all logs.
const {Logging} = require('@google-cloud/logging');
const logging = new Logging();
async function listLogs() {
const [logs] = await logging.getLogs();
console.log('Logs:');
logs.forEach(log => {
console.log(log.name);
});
}
listLogs();
Deleting Logs
This feature allows users to delete logs from Google Cloud Logging. The code sample illustrates how to delete a specific log by its name.
const {Logging} = require('@google-cloud/logging');
const logging = new Logging();
const log = logging.log('my-log');
async function deleteLog() {
await log.delete();
console.log('Log deleted.');
}
deleteLog();
Winston is a versatile logging library for Node.js. Unlike @google-cloud/logging, which is specifically designed for integration with Google Cloud Logging, Winston supports multiple transports (a way to store logs) such as files, console, and more. It is more flexible for various logging needs and environments but doesn't provide direct integration with Google Cloud Logging without additional plugins.
Bunyan is another Node.js logging library that focuses on JSON logging. Like Winston, it is highly configurable and supports various outputs but does not have built-in support for Google Cloud Logging. It is comparable to @google-cloud/logging in terms of providing structured logging but is more general-purpose.
Google Stackdriver Logging Client Library for Node.js
Looking for more Google APIs than just Logging? You might want to check out google-cloud
.
$ npm install --save @google-cloud/logging
var logging = require('@google-cloud/logging')({
projectId: 'grape-spaceship-123',
keyFilename: '/path/to/keyfile.json'
});
// Create a sink using a Bucket as a destination.
// $ npm install --save @google-cloud/storage
var gcs = require('@google-cloud/storage')({
projectId: 'grape-spaceship-123',
keyFilename: '/path/to/keyfile.json'
});
logging.createSink('my-new-sink', {
destination: gcs.bucket('my-sink')
}, function(err, sink) {});
// Write a critical entry to a log.
var syslog = logging.log('syslog');
var metadata = {
resource: {
type: 'gce_instance',
labels: {
zone: 'global',
instance_id: '3'
}
}
};
var entry = syslog.entry(metadata, {
delegate: process.env.user
});
syslog.critical(entry, function(err) {});
// Get all entries in your project.
logging.getEntries(function(err, entries) {
if (!err) {
// `entries` contains all of the entries from the logs in your project.
}
});
// Promises are also supported by omitting callbacks.
logging.getEntries().then(function(data) {
var entries = data[0];
});
// It's also possible to integrate with third-party Promise libraries.
var logging = require('@google-cloud/logging')({
promise: require('bluebird')
});
It's incredibly easy to get authenticated and start using Google's APIs. You can set your credentials on a global basis as well as on a per-API basis. See each individual API section below to see how you can auth on a per-API-basis. This is useful if you want to use different accounts for different Google Cloud services.
If you are running this client on Google Cloud Platform, we handle authentication for you with no configuration. You just need to make sure that when you set up the GCE instance, you add the correct scopes for the APIs you want to access.
var logging = require('@google-cloud/logging')();
// ...you're good to go!
If you are not running this client on Google Cloud Platform, you need a Google Developers service account. To create a service account:
var projectId = process.env.GCLOUD_PROJECT; // E.g. 'grape-spaceship-123'
var logging = require('@google-cloud/logging')({
projectId: projectId,
// The path to your key file:
keyFilename: '/path/to/keyfile.json'
// Or the contents of the key file:
credentials: require('./path/to/keyfile.json')
});
// ...you're good to go!
FAQs
Cloud Logging Client Library for Node.js
The npm package @google-cloud/logging receives a total of 300,493 weekly downloads. As such, @google-cloud/logging popularity was classified as popular.
We found that @google-cloud/logging demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.
Security News
Research
Socket's threat research team has detected five malicious npm packages targeting Roblox developers, deploying malware to steal credentials and personal data.