Tail log entries

Demonstrates how to tail live log entries.

Explore further

For detailed documentation that includes this code sample, see the following:

Code sample

Go

To learn how to install and use the client library for Logging, see Logging client libraries .

To authenticate to Logging, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  import 
  
 ( 
  
 "context" 
  
 "fmt" 
  
 "io" 
  
 logging 
  
 "cloud.google.com/go/logging/apiv2" 
  
 "cloud.google.com/go/logging/apiv2/loggingpb" 
 ) 
 // tailLogs creates a channel to stream log entries that were recently ingested for a project 
 func 
  
 tailLogs 
 ( 
 projectID 
  
 string 
 ) 
  
 error 
  
 { 
  
 // projectID := "your_project_id" 
  
 ctx 
  
 := 
  
 context 
 . 
 Background 
 () 
  
 client 
 , 
  
 err 
  
 := 
  
 logging 
 . 
  NewClient 
 
 ( 
 ctx 
 ) 
  
 if 
  
 err 
  
 != 
  
 nil 
  
 { 
  
 return 
  
 fmt 
 . 
 Errorf 
 ( 
 "NewClient error: %w" 
 , 
  
 err 
 ) 
  
 } 
  
 defer 
  
 client 
 . 
 Close 
 () 
  
 stream 
 , 
  
 err 
  
 := 
  
 client 
 . 
 TailLogEntries 
 ( 
 ctx 
 ) 
  
 if 
  
 err 
  
 != 
  
 nil 
  
 { 
  
 return 
  
 fmt 
 . 
 Errorf 
 ( 
 "TailLogEntries error: %w" 
 , 
  
 err 
 ) 
  
 } 
  
 defer 
  
 stream 
 . 
 CloseSend 
 () 
  
 req 
  
 := 
  
& loggingpb 
 . 
 TailLogEntriesRequest 
 { 
  
 ResourceNames 
 : 
  
 [] 
 string 
 { 
  
 "projects/" 
  
 + 
  
 projectID 
 , 
  
 }, 
  
 } 
  
 if 
  
 err 
  
 := 
  
 stream 
 . 
 Send 
 ( 
 req 
 ); 
  
 err 
  
 != 
  
 nil 
  
 { 
  
 return 
  
 fmt 
 . 
 Errorf 
 ( 
 "stream.Send error: %w" 
 , 
  
 err 
 ) 
  
 } 
  
 // read and print two or more streamed log entries 
  
 for 
  
 counter 
  
 := 
  
 0 
 ; 
  
 counter 
 < 
 2 
 ; 
  
 { 
  
 resp 
 , 
  
 err 
  
 := 
  
 stream 
 . 
 Recv 
 () 
  
 if 
  
 err 
  
 == 
  
 io 
 . 
 EOF 
  
 { 
  
 break 
  
 } 
  
 if 
  
 err 
  
 != 
  
 nil 
  
 { 
  
 return 
  
 fmt 
 . 
 Errorf 
 ( 
 "stream.Recv error: %w" 
 , 
  
 err 
 ) 
  
 } 
  
 fmt 
 . 
 Printf 
 ( 
 "received:\n%v\n" 
 , 
  
 resp 
 ) 
  
 if 
  
 resp 
 . 
 Entries 
  
 != 
  
 nil 
  
 { 
  
 counter 
  
 += 
  
 len 
 ( 
 resp 
 . 
 Entries 
 ) 
  
 } 
  
 } 
  
 return 
  
 nil 
 } 
 

Java

To learn how to install and use the client library for Logging, see Logging client libraries .

To authenticate to Logging, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  import 
  
 com.google.cloud.logging. LogEntry 
 
 ; 
 import 
  
 com.google.cloud.logging. LogEntryServerStream 
 
 ; 
 import 
  
 com.google.cloud.logging. Logging 
 
 ; 
 import 
  
 com.google.cloud.logging. Logging 
. TailOption 
 
 ; 
 import 
  
 com.google.cloud.logging. LoggingOptions 
 
 ; 
 public 
  
 class 
 TailLogEntries 
  
 { 
  
 public 
  
 static 
  
 void 
  
 main 
 ( 
 String 
 [] 
  
 args 
 ) 
  
 throws 
  
 Exception 
  
 { 
  
 // TODO(developer): Optionally provide the logname as an argument. 
  
 String 
  
 logName 
  
 = 
  
 args 
 . 
 length 
 > 
 0 
  
 ? 
  
 args 
 [ 
 0 
 ] 
  
 : 
  
 "" 
 ; 
  
  LoggingOptions 
 
  
 options 
  
 = 
  
  LoggingOptions 
 
 . 
  getDefaultInstance 
 
 (); 
  
 try 
  
 ( 
  Logging 
 
  
 logging 
  
 = 
  
 options 
 . 
 getService 
 ()) 
  
 { 
  
 // Optionally compose a filter to tail log entries only from specific log 
  
  LogEntryServerStream 
 
  
 stream 
 ; 
  
 if 
  
 ( 
 logName 
  
 != 
  
 "" 
 ) 
  
 { 
  
 stream 
  
 = 
  
 logging 
 . 
  tailLogEntries 
 
 ( 
  
  TailOption 
 
 . 
 filter 
 ( 
  
 "logName=projects/" 
  
 + 
  
 options 
 . 
 getProjectId 
 () 
  
 + 
  
 "/logs/" 
  
 + 
  
 logName 
 )); 
  
 } 
  
 else 
  
 { 
  
 stream 
  
 = 
  
 logging 
 . 
  tailLogEntries 
 
 (); 
  
 } 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "start streaming.." 
 ); 
  
 for 
  
 ( 
  LogEntry 
 
  
 log 
  
 : 
  
 stream 
 ) 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 log 
 ); 
  
 // cancel infinite streaming after receiving first entry 
  
 stream 
 . 
  cancel 
 
 (); 
  
 } 
  
 } 
  
 } 
 } 
 

Node.js

To learn how to install and use the client library for Logging, see Logging client libraries .

To authenticate to Logging, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  const 
  
 { 
 Logging 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/logging 
' 
 ); 
 const 
  
 logging 
  
 = 
  
 new 
  
  Logging 
 
 (); 
 /** 
 * TODO(developer): Replace logName with the name of your log. 
 */ 
 const 
  
 log 
  
 = 
  
 logging 
 . 
 log 
 ( 
 logName 
 ); 
 console 
 . 
 log 
 ( 
 'running tail log entries test' 
 ); 
 const 
  
 stream 
  
 = 
  
 log 
  
 . 
 tailEntries 
 ({ 
  
 filter 
 : 
  
 'timestamp > "2021-01-01T23:00:00Z"' 
 , 
  
 }) 
  
 . 
 on 
 ( 
 'error' 
 , 
  
 console 
 . 
 error 
 ) 
  
 . 
 on 
 ( 
 ' data 
' 
 , 
  
 resp 
  
 = 
>  
 { 
  
 console 
 . 
 log 
 ( 
 resp 
 . 
 entries 
 ); 
  
 console 
 . 
 log 
 ( 
 resp 
 . 
 suppressionInfo 
 ); 
  
 // If you anticipate many results, you can end a stream early to prevent 
  
 // unnecessary processing and API requests. 
  
  stream 
 
 . 
 end 
 (); 
  
 }) 
  
 . 
 on 
 ( 
 'end' 
 , 
  
 () 
  
 = 
>  
 { 
  
 console 
 . 
 log 
 ( 
 'log entry stream has ended' 
 ); 
  
 }); 
 // Note: to get all project logs, invoke logging.tailEntries 
 

What's next

To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser .

Create a Mobile Website
View Site in Mobile | Classic
Share by: