Here is a sample:
{
     "@timestamp" => "2015-06-03T11:12:43.776Z",
        "message" => "2015-06-03 16:40:30,356 [DefaultQuartzScheduler_Worker-9] ERROR StackTrace  - Full Stack Trace:\norg.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only\nhawkeyes.logat hawkeyes.quartz.JobTemplate.execute(JobTemplate.groovy:10)\nhawkeyes.logat org.quartz.core.JobRunShell.run(JobRunShell.java:202)\nhawkeyes.logat org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)",
       "@version" => "1",
           "tags" => [
        [0] "multiline",
        [1] "hawkeyes_log",
        [2] "log4j"
    ],
           "type" => "hawkeyes",
           "host" => "hawkeyesTest",
           "path" => "/mnt/log/hawkeyeslogs/hawkeyes.log",
           "date" => "2015-06-03 16:40:30,356",
    "thread_name" => "DefaultQuartzScheduler_Worker-9",
      "log_level" => "ERROR",
        "content" => "StackTrace  - Full Stack Trace:\norg.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only\nhawkeyes.logat hawkeyes.quartz.JobTemplate.execute(JobTemplate.groovy:10)\nhawkeyes.logat org.quartz.core.JobRunShell.run(JobRunShell.java:202)\nhawkeyes.logat org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)"
Here is my grok config:
        grok {
            match => { "message" => 
                "%{TIMESTAMP_ISO8601:date} \[(?<thread_name>.+?)\] (?<log_level>\w+)\s*(?<content>.*)"
            }
        }
In logstash 1.4, the content variable will only get the first line content("StackTrace  - Full Stack Trace:"). But in logstash 1.5, this variable will hold the whole multiline message.
How do I make this variable only the first line?