# How to merge two lines having different patterns in a log file?

**URL:** https://discuss.elastic.co/t/how-to-merge-two-lines-having-different-patterns-in-a-log-file/94208
**Category:** Logstash
**Created:** [July 22, 2017, 2:41pm UTC](https://discuss.elastic.co/t/how-to-merge-two-lines-having-different-patterns-in-a-log-file/94208 "2017-07-22T14:41:37Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![Amit\_Singh1](https://avatars.discourse-cdn.com/v4/letter/a/dec6dc/32.png) [@Amit\_Singh1](https://discuss.elastic.co/u/Amit_Singh1)
#### Post date: [July 22, 2017, 2:41pm UTC](https://discuss.elastic.co/t/how-to-merge-two-lines-having-different-patterns-in-a-log-file/94208/1 "2017-07-22T14:41:37Z")

</div>

SAMPLE LOG:

2017-07-14 17:47:11 +0000 [INFO] from application in application-akka.actor.default-dispatcher-9 - requestId: 8e5ccc9dbb4611cf9f363efbbe8e1c59,user: [gaurav@sigmoid.com](mailto:gaurav@sigmoid.com), organization: Vdopia, view: Auction, queryTz: UTC, queryStartTime: 1498262400000, queryEndTime: 1500051600000, dimensions: ["D001"], measures: ["M008","M002","M024"], filters: [], requestType: chartType

2017-07-14 17:47:11 +0000 [INFO] from application in application-akka.actor.default-dispatcher-15 - requestId: ad3265d3e99aa541e045ea726a669d65,user: [gaurav@sigmoid.com](mailto:gaurav@sigmoid.com), organization: Vdopia, view: Auction, queryTz: UTC, queryStartTime: 1498262400000, queryEndTime: 1500051600000, dimensions: ["D018"], measures: ["M002","M014","M019","M006","M012","M008","M024"], filters: [], requestType: chartType

2017-07-14 17:47:16 +0000 [INFO] from application in application-akka.actor.default-dispatcher-9 - requestId: 8e5ccc9dbb4611cf9f363efbbe8e1c59,elapsedTime: 5702 ms,status: Success,code: 200,message: Success

2017-07-14 17:47:17 +0000 [INFO] from application in application-akka.actor.default-dispatcher-15 - requestId: ad3265d3e99aa541e045ea726a669d65,elapsedTime: 5968 ms,status: Success,code: 200,message: Success

One line is for the query request and another is for the query result, how can i merge both lines according to the requestId?

---

<div class="post-metadata">

### Author: ![Chandan\_Pandey](https://avatars.discourse-cdn.com/v4/letter/c/9d8465/32.png) [@Chandan\_Pandey](https://discuss.elastic.co/u/Chandan_Pandey)
#### Post date: [July 22, 2017, 2:45pm UTC](https://discuss.elastic.co/t/how-to-merge-two-lines-having-different-patterns-in-a-log-file/94208/2 "2017-07-22T14:45:11Z")

</div>

My log format is log4j & I am also facing the same problem. Please help us out.

Thanks

---

<div class="post-metadata">

### Author: ![magnusbaeck](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/magnusbaeck/32/44943_2.png) [@magnusbaeck](https://discuss.elastic.co/u/magnusbaeck)
#### Post date: [July 25, 2017, 9:02pm UTC](https://discuss.elastic.co/t/how-to-merge-two-lines-having-different-patterns-in-a-log-file/94208/3 "2017-07-25T21:02:36Z")

</div>

Have you looked at the aggregate filter?

---

<div class="post-metadata">

### Author: ![Amit\_Singh1](https://avatars.discourse-cdn.com/v4/letter/a/dec6dc/32.png) [@Amit\_Singh1](https://discuss.elastic.co/u/Amit_Singh1)
#### Post date: [July 26, 2017, 1:36pm UTC](https://discuss.elastic.co/t/how-to-merge-two-lines-having-different-patterns-in-a-log-file/94208/4 "2017-07-26T13:36:03Z")

</div>

I am using below conf for processing my logs but i am not getting appropriate result. Can you please guide me where i am doing wrong.

input {  
file {  
path =\> "/home/amit/Desktop/application-log-2017-07-14.log"  
start\_position =\> "beginning"  
sincedb\_path =\> "/dev/null"  
}  
}

filter {  
grok{  
match=\>{  
"message"=\>'(?%{YEAR}-%{MONTHNUM}-%{MONTHDAY} %{HOUR}:%{MINUTE}:%{SECOND} %{ISO8601\_TIMEZONE}) [INFO] from application in application-akka.actor.default-dispatcher-%{WORD:phaltu} - requestId: %{WORD:id},user: %{NOTSPACE:email}, organization: %{WORD:organization}, view: %{WORD:view}, queryTz: %{WORD:query\_time\_zone}, queryStartTime: %{NUMBER:start\_time}, queryEndTime: %{NUMBER:end\_time}'  
}  
}

grok{  
match=\>{  
"message"=\>'(?%{YEAR}-%{MONTHNUM}-%{MONTHDAY} %{HOUR}:%{MINUTE}:%{SECOND} %{ISO8601\_TIMEZONE}) [INFO] from application in application-akka.actor.default-dispatcher-%{WORD:phaltu} - requestId: %{WORD:id},elapsedTime: %{INT:elapsed\_time:int} ms,status: %{WORD:status},code: %{NUMBER},message: %{WORD:message\_status}'  
}  
}

```
if [view] == "Auction" {
	aggregate {
		task_id => "%{id}"
		code => "event.set('elapsed_time', map['elapsed_time'] = event.get('elapsed_time'))"
		map_action => "update"
	}
}

if [view] == "Bid" {
	aggregate {
		task_id => "%{id}"
		code => "event.set('status', map['status'] = event.get('status'))"
		map_action => "update"
	}
}

if [view] == "Default" {
	aggregate {
		task_id => "%{id}"
		code => "event.set('message_status', map['message_status'] = event.get('message_status'))"
		map_action => "update"
		end_of_task => true
		timeout => 120
	}
}   

```

}

output {  
elasticsearch {  
hosts =\> "localhost"  
index =\> "vdopia"  
}  
stdout { codec =\> rubydebug }  
}

---

<div class="post-metadata">

### Author: ![Amit\_Singh1](https://avatars.discourse-cdn.com/v4/letter/a/dec6dc/32.png) [@Amit\_Singh1](https://discuss.elastic.co/u/Amit_Singh1)
#### Post date: [July 31, 2017, 5:15pm UTC](https://discuss.elastic.co/t/how-to-merge-two-lines-having-different-patterns-in-a-log-file/94208/5 "2017-07-31T17:15:31Z")

</div>

I have used the above aggregation terminology, but working at all, it not even entering inside the if condition.

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [August 28, 2017, 5:16pm UTC](https://discuss.elastic.co/t/how-to-merge-two-lines-having-different-patterns-in-a-log-file/94208/6 "2017-08-28T17:16:15Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
