0

Background: I am deploying my application mvn gcloud:deploy to the Google Flexible Environment but I cannot see my website being online. I want to know what's happening as the server is starting up and I therefore try to see my log messages.


According to this documentation I need to format send my log messages in a JSON format:

{
  "eventTime": string,
  "serviceContext": {      // Required.
    "service": string,
    "version": string
  },
  "message": string,       // Required.
  // ...
}

I have configured my appenders like this:

log4j.rootLogger=TRACE, consoleAppender, fileAppender, appEngineAppender, appEngineAppender2

log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.consoleAppender.layout.ConversionPattern=[%t] %-5p %c %x- %m%n

log4j.appender.fileAppender=org.apache.log4j.RollingFileAppender
log4j.appender.fileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.fileAppender.layout.ConversionPattern=[%t] %-5p %c %x- %m%n
log4j.appender.fileAppender.File=mz-web-server.log

# Google Cloud Logging

log4j.appender.appEngineAppender=org.apache.log4j.RollingFileAppender
log4j.appender.appEngineAppender.layout=com.mz.server.AppEngineAppenderLayout
log4j.appender.appEngineAppender.File=/var/log/app_engine/custom_logs/err_mz-web-server.json
log4j.appender.appEngineAppender.Threshold=DEBUG

log4j.appender.appEngineAppender2=org.apache.log4j.RollingFileAppender
log4j.appender.appEngineAppender2.layout=com.mz.server.AppEngineAppenderLayout
log4j.appender.appEngineAppender2.File=err_mz-web-server.json
log4j.appender.appEngineAppender2.Threshold=DEBUG

# Mz
log4j.logger.com.mz=debug

# Spring Framework
log4j.logger.org.springframework=warn

# jOOQ prints to stdout - have do redirect that somehow
log4j.logger.org.jooq=warn

# FlywayDB
log4j.logger.org.flywaydb=warn

# ehcache
log4j.logger.net.sf.ehcache=warn

and the err_mz-web-server.json looks like this:

{"eventTime":"2016-06-05, 12:01:13","serviceContext":{"service":"[mz-server]","version":"v0.1"},"message":"Server booting up. Time: UTC 2016-06-05T12:01:13.406Z"}
{"eventTime":"2016-06-05, 12:01:13","serviceContext":{"service":"[mz-server]","version":"v0.1"},"message":"Joda Time default Timezone: UTC"}
{"eventTime":"2016-06-05, 12:01:13","serviceContext":{"service":"[mz-server]","version":"v0.1"},"message":"Running database migration ..."}
{"eventTime":"2016-06-05, 12:01:13","serviceContext":{"service":"[mz-server]","version":"v0.1"},"message":"Executing migration .."}
{"eventTime":"2016-06-05, 12:01:14","serviceContext":{"service":"[mz-server]","version":"v0.1"},"message":"Not migration required."}
{"eventTime":"2016-06-05, 12:01:14","serviceContext":{"service":"[mz-server]","version":"v0.1"},"message":"Database migration done."}
{"eventTime":"2016-06-05, 12:01:14","serviceContext":{"service":"[mz-server]","version":"v0.1"},"message":"Initialization done."}
{"eventTime":"2016-06-05, 12:01:14","serviceContext":{"service":"[mz-server]","version":"v0.1"},"message":"Unhandled event"}
{"eventTime":"2016-06-05, 12:01:14","serviceContext":{"service":"[mz-server]","version":"v0.1"},"message":"Unhandled event"}

However, I do not see any errors being logged under https://console.cloud.google.com/errors?time=P1D&refresh=off&order=1 as described here.


Update:

I checked if the file exists but it seems that the directory /var/log/app_engine/custom_logs/ is not getting created:

user@gae-default-20160605t144407-u28j:/var/log/app_engine$ ls -la
total 16
drwxrwxrwx  4 root root 4096 May 26 21:55 .
drwxr-xr-x 14 root root 4096 Jun  5 12:48 ..
drwxrwxrwx  3 root root 4096 May 26 21:55 app
drwxr-xr-x  2 root root 4096 May 26 21:55 monitoring
Stefan Falk
  • 23,898
  • 50
  • 191
  • 378
  • Hi @displayname, please add your java code too. – Nico Jun 05 '16 at 13:49
  • @Nico Hi! I just fixed this issue. I think it was because I did not call `mkdirs` and log4j appears to *not* create all necessary directories by itself. – Stefan Falk Jun 05 '16 at 14:01
  • OMG!! log4j doesn't do that? :P – Nico Jun 05 '16 at 14:05
  • @Nico I didn't think about it tbh. I thought the file system will already be initialized or I'll see an error that tells me the file could not have been created. ^^ – Stefan Falk Jun 05 '16 at 14:15
  • @Nico Do you know how I can set the log level to be able to filter the messages in the web ui? [There's nothing mentioned](https://cloud.google.com/error-reporting/docs/formatting-error-messages). Thus I can only see messages in the **Stackdriver Logging** view but nothing under **Stackdriver Error Reporting**. – Stefan Falk Jun 05 '16 at 14:20

0 Answers0