# Rails4 log prefix LOGLEVELSINGLE %{WORD} PROCESSNUM %{NUMBER} RAILS4PREFIX %{LOGLEVELSINGLE}, \[%{TIMESTAMP_ISO8601} #%{PROCESSNUM}] %{LOGLEVEL} -- : # This will often be the only line: URIPATHPARAM2 %{URIPATH:uripath}(?:%{URIPARAM})? RAILS4HEAD (?m)%{RAILS4PREFIX}Started %{WORD:verb} "%{URIPATHPARAM2:request}" for %{IPORHOST:clientip} at (?%{YEAR}-%{MONTHNUM}-%{MONTHDAY} %{HOUR}:%{MINUTE}:%{SECOND} %{ISO8601_TIMEZONE}) # Output schema migration info right after started RAILS4SCHEMAMIGRATION \W*%{RAILS4PREFIX}ActiveRecord::SchemaMigration Load \(%{NUMBER:schemams}ms\) SELECT "schema_migrations".* FROM "schema_migrations" # For some strange reason, params are stripped of {} - not sure that's a good idea. RAILS4PARAMETERS \W*%{RAILS4PREFIX} Parameters: {%{DATA:params}} RAILS4RPROCESSING (?:%{RAILS4SCHEMAMIGRATION})?\W*%{RAILS4PREFIX}Processing by %{RCONTROLLER} as (?\S+)(?:%{RAILS4PARAMETERS})? RAILS4PROFILE (?:\(Views: %{NUMBER:viewms:float}ms \| ActiveRecord: %{NUMBER:activerecordms:float}ms|\(ActiveRecord: %{NUMBER:activerecordms:float}ms)? RAILS4FOOT %{RAILS4PREFIX}Completed %{NUMBER:response} %{DATA} in %{NUMBER:totalms:int}ms %{RAILS4PROFILE}%{GREEDYDATA} # Put it all together RAILS4 %{RAILS4HEAD}(?:%{RAILS4RPROCESSING})?(?(?:%{DATA}\n)*)(?:%{RAILS4FOOT})?