Skip to content

Commit

Permalink
Add Logging examples.
Browse files Browse the repository at this point in the history
  • Loading branch information
jmdobry committed Jan 15, 2016
1 parent dade986 commit 45ae851
Show file tree
Hide file tree
Showing 6 changed files with 220 additions and 1 deletion.
48 changes: 48 additions & 0 deletions logging/list.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
// Copyright 2016, Google, Inc.
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

'use strict';

// [START list]
// [START auth]
var projectId = process.env.TEST_PROJECT_ID;
var keyFilename = process.env.GOOGLE_APPLICATION_CREDENTIALS;

projectId = projectId || '<your-project-id>';
keyFilename = keyFilename || '/path/to/keyfile.json';

// [START require]
var gcloud = require('gcloud')({
projectId: projectId,
keyFilename: keyFilename
});
// [END require]
// [END auth]

var logging = gcloud.logging();

function list(callback) {
// Retrieve 3 log entries.
logging.getEntries({
pageSize: 3
}, callback);
}
// [END list]

exports.list = list;

if (module === require.main) {
list(function (err, result) {
console.log(err, result);
});
}
14 changes: 14 additions & 0 deletions logging/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"name": "nodejs-docs-samples-logging",
"description": "Node.js samples for Google Cloud Logging.",
"version": "0.0.1",
"private": true,
"license": "Apache Version 2.0",
"scripts": {
"list": "node list.js",
"write": "node write.js"
},
"dependencies": {
"gcloud": "^0.27.0"
}
}
86 changes: 86 additions & 0 deletions logging/write.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
// Copyright 2016, Google, Inc.
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

/* jshint camelcase:false */
'use strict';

// [START write]
// [START setup]
var projectId = process.env.TEST_PROJECT_ID;
var keyFilename = process.env.GOOGLE_APPLICATION_CREDENTIALS;

projectId = projectId || '<your-project-id>';
keyFilename = keyFilename || '/path/to/keyfile.json';

var gcloud = require('gcloud')({
projectId: projectId,
keyFilename: keyFilename
});

var logging = gcloud.logging();
// [END setup]

function write(callback) {
var log = logging.log('myLog');

// Modify this resource type to match a resource in your project
// See https://cloud.google.com/logging/docs/api/ref_v2beta1/rest \
// /v2beta1/monitoredResourceDescriptors/list
var resource = {
type: 'gae_app',
labels: {
module_id: 'default',
version_id: 'express'
}
};

var entry = log.entry(resource, {
foo: 'bar'
});

var secondEntry = log.entry(resource, {
beep: 'boop'
});

// You can log multiple entries one at a a time, but it is best to write
// multiple entires together in a batch.
log.write([
entry,
secondEntry
], callback);
}
// [END write]

// [START deleteLog]
function deleteLog(callback) {
var log = logging.log('myLog');

// Delete the logs
log.delete(callback);
}
// [END deleteLog]

exports.write = write;
exports.deleteLog = deleteLog;

if (module === require.main) {
write(function (err, apiResponse) {
console.log(err, apiResponse);
if (err) {
return;
}
deleteLog(function (err, apiResponse) {
console.log(err, apiResponse);
});
});
}
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,12 @@
"coveralls": "cat ./coverage/lcov.info | node_modules/.bin/coveralls",
"deps_datastore": "cd datastore && npm i && cd ../..",
"deps_storage": "cd storage && npm i && cd ../..",
"deps_logging": "cd logging && npm i && cd ../..",
"deps_express": "cd appengine/express && npm i && cd ../..",
"deps_sendgrid": "cd appengine/sendgrid && npm i && cd ../.. && cd computeengine/sendgrid && npm i && cd ../..",
"deps_memcached": "cd appengine/express-memcached-session && npm i && cd ../..",
"pretest_geddy": "cd appengine/geddy && npm i geddy; GEDDY_SECRET=config/secrets.json; [[ -f $GEDDY_SECRET ]] || echo '{}' > $GEDDY_SECRET && node node_modules/.bin/geddy gen secret; cd ../..;",
"pretest": "npm run deps_datastore && npm run deps_storage && npm run deps_memcached && npm run deps_express && npm run deps_sendgrid && npm run pretest_geddy",
"pretest": "npm run deps_datastore && npm run deps_storage && npm run deps_logging && npm run deps_memcached && npm run deps_express && npm run deps_sendgrid && npm run pretest_geddy",
"test": "npm run jshint && npm run cover"
},
"devDependencies": {
Expand Down
31 changes: 31 additions & 0 deletions test/logging/list.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
// Copyright 2016, Google, Inc.
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

'use strict';

var assert = require('assert');

var logging = require('../../logging/list');

describe('logging/list', function () {
it('should list entries', function (done) {
logging.list(function (err, entries) {
if (err) {
return done(err);
}
assert.ok(Array.isArray(entries), 'should have got an array');
assert.equal(entries.length, 3, 'should have three entries');
done();
});
});
});
39 changes: 39 additions & 0 deletions test/logging/write.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
// Copyright 2016, Google, Inc.
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

'use strict';

var assert = require('assert');

var logging = require('../../logging/write');

describe('logging/write', function () {
it('should write entries', function (done) {
logging.write(function (err, apiResponse) {
if (err) {
return done(err);
}
assert.deepEqual(apiResponse, {}, 'should have correct response');
done();
});
});
it('should delete entries', function (done) {
logging.deleteLog(function (err, apiResponse) {
if (err) {
return done(err);
}
assert.deepEqual(apiResponse, {}, 'should have correct response');
done();
});
});
});

0 comments on commit 45ae851

Please sign in to comment.