@@ -52,6 +52,7 @@ var Entry = require('./entry.js');
5252function Log ( logging , name ) {
5353 this . formattedName_ = Log . formatName_ ( logging . projectId , name ) ;
5454 this . name = this . formattedName_ . split ( '/' ) . pop ( ) ;
55+ this . metadata_ = logging . metadata ;
5556
5657 var methods = {
5758 /**
@@ -136,6 +137,27 @@ Log.formatName_ = function(projectId, name) {
136137 return path + name ;
137138} ;
138139
140+ Log . prototype . assignDefaultMetadata_ = function ( entry , callback ) {
141+ var entryMetadata = entry . metadata ;
142+ // If the resource specifcally was not supplied attempt to determine it
143+ // automatically
144+ if ( ! is . object ( entryMetadata ) || ! is . object ( entryMetadata . resource ) ) {
145+ this . metadata_ . getDefaultResource ( function ( err , resource ) {
146+ if ( err ) {
147+ callback ( err ) ;
148+ return ;
149+ }
150+ // Merge the entry's metadata with the auto generated resource; give
151+ // precedence to any entry originated metadata information
152+ entry . metadata = extend ( true , { resource : resource } , entryMetadata ) ;
153+ callback ( null ) ;
154+ } ) ;
155+ return ;
156+ }
157+ // Otherwise don't modify or augment user supplied resource data
158+ callback ( null ) ;
159+ } ;
160+
139161/**
140162 * Write a log entry with a severity of "ALERT".
141163 *
@@ -157,7 +179,10 @@ Log.formatName_ = function(projectId, name) {
157179 * });
158180 */
159181Log . prototype . alert = function ( entry , options , callback ) {
160- this . write ( Log . assignSeverityToEntries_ ( entry , 'ALERT' ) , options , callback ) ;
182+ var self = this ;
183+ this . assignDefaultMetadata_ ( entry , function ( ) {
184+ self . write ( Log . assignSeverityToEntries_ ( entry , 'ALERT' ) , options , callback ) ;
185+ } ) ;
161186} ;
162187
163188/**
@@ -181,8 +206,11 @@ Log.prototype.alert = function(entry, options, callback) {
181206 * });
182207 */
183208Log . prototype . critical = function ( entry , options , callback ) {
184- var entries = Log . assignSeverityToEntries_ ( entry , 'CRITICAL' ) ;
185- this . write ( entries , options , callback ) ;
209+ var self = this ;
210+ this . assignDefaultMetadata_ ( entry , function ( ) {
211+ self . write ( Log . assignSeverityToEntries_ ( entry , 'CRITICAL' ) , options ,
212+ callback ) ;
213+ } ) ;
186214} ;
187215
188216/**
@@ -206,7 +234,11 @@ Log.prototype.critical = function(entry, options, callback) {
206234 * });
207235 */
208236Log . prototype . debug = function ( entry , options , callback ) {
209- this . write ( Log . assignSeverityToEntries_ ( entry , 'DEBUG' ) , options , callback ) ;
237+ var self = this ;
238+ this . assignDefaultMetadata_ ( entry , function ( ) {
239+ self . write ( Log . assignSeverityToEntries_ ( entry , 'DEBUG' ) , options ,
240+ callback ) ;
241+ } ) ;
210242} ;
211243
212244/**
@@ -230,8 +262,11 @@ Log.prototype.debug = function(entry, options, callback) {
230262 * });
231263 */
232264Log . prototype . emergency = function ( entry , options , callback ) {
233- var entries = Log . assignSeverityToEntries_ ( entry , 'EMERGENCY' ) ;
234- this . write ( entries , options , callback ) ;
265+ var self = this ;
266+ this . assignDefaultMetadata_ ( entry , function ( ) {
267+ self . write ( Log . assignSeverityToEntries_ ( entry , 'EMERGENCY' ) , options ,
268+ callback ) ;
269+ } ) ;
235270} ;
236271
237272/**
@@ -313,7 +348,11 @@ Log.prototype.entry = function(metadata, data) {
313348 * });
314349 */
315350Log . prototype . error = function ( entry , options , callback ) {
316- this . write ( Log . assignSeverityToEntries_ ( entry , 'ERROR' ) , options , callback ) ;
351+ var self = this ;
352+ this . assignDefaultMetadata_ ( entry , function ( ) {
353+ self . write ( Log . assignSeverityToEntries_ ( entry , 'ERROR' ) , options ,
354+ callback ) ;
355+ } ) ;
317356} ;
318357
319358/**
@@ -439,7 +478,11 @@ Log.prototype.getEntriesStream = function(options) {
439478 * });
440479 */
441480Log . prototype . info = function ( entry , options , callback ) {
442- this . write ( Log . assignSeverityToEntries_ ( entry , 'INFO' ) , options , callback ) ;
481+ var self = this ;
482+ this . assignDefaultMetadata_ ( entry , function ( ) {
483+ self . write ( Log . assignSeverityToEntries_ ( entry , 'INFO' ) , options ,
484+ callback ) ;
485+ } ) ;
443486} ;
444487
445488/**
@@ -463,7 +506,11 @@ Log.prototype.info = function(entry, options, callback) {
463506 * });
464507 */
465508Log . prototype . notice = function ( entry , options , callback ) {
466- this . write ( Log . assignSeverityToEntries_ ( entry , 'NOTICE' ) , options , callback ) ;
509+ var self = this ;
510+ this . assignDefaultMetadata_ ( entry , function ( ) {
511+ self . write ( Log . assignSeverityToEntries_ ( entry , 'NOTICE' ) , options ,
512+ callback ) ;
513+ } ) ;
467514} ;
468515
469516/**
@@ -487,7 +534,11 @@ Log.prototype.notice = function(entry, options, callback) {
487534 * });
488535 */
489536Log . prototype . warning = function ( entry , options , callback ) {
490- this . write ( Log . assignSeverityToEntries_ ( entry , 'WARNING' ) , options , callback ) ;
537+ var self = this ;
538+ this . assignDefaultMetadata_ ( entry , function ( ) {
539+ self . write ( Log . assignSeverityToEntries_ ( entry , 'WARNING' ) , options ,
540+ callback ) ;
541+ } ) ;
491542} ;
492543
493544/**
0 commit comments