title: logstash target of repeat operator is not specified:
body: <p>I want to use logstash to ship my logs,so I download the logstash1.5.0 rc2 and run it in ubuntu use the command :</p>
  
  <pre><code> bin/logstash -f test.conf
  </code></pre>
  
  <p>then the console show the error:</p>
  
  <pre><code>The error reported is: 
    **target of repeat operator is not specified:** /;(?&lt;Args:method&gt;*);(?&lt;INT:traceid:int&gt;(?:[+-]?(?:[0-9]+)));(?&lt;INT:sTime:int&gt;(?:[+-]?(?:[0-9]+)));(?&lt;INT:eTime:int&gt;(?:[+-]?(?:[0-9]+)));(?&lt;HOSTNAME:hostname&gt;\b(?:[0-9A-Za-z][0-9A-Za-z-]{0,62})(?:\.(?:[0-9A-Za-z][0-9A-Za-z-]{0,62}))*(\.?|\b));(?&lt;INT:eoi:int&gt;(?:[+-]?(?:[0-9]+)));(?&lt;INT:ess:int&gt;(?:[+-]?(?:[0-9]+)));(?&lt;Args:args&gt;*)/m
  </code></pre>
  
  <p>I don't know how to solve this error,may be you can help me.</p>
  
  <p>my test.conf is as follow:</p>
  
  <pre><code>input { stdin { } }
  
  filter {
  grok {
  match =&gt; ["message" , "%{INT:type}"]}
  
  
  if [type]=="10" {
  grok {
  patterns_dir =&gt; "./patterns"
  match =&gt; ["message" , ";%{Args:method};%{INT:traceid:int};%{INT:sTime:int};%{INT:eTime:int};%{HOSTNAME:hostname};%{INT:eoi:int};%{INT:ess:int};%{Args:args}"]
  }
  
  date {
      match =&gt; [ "sTime" , "UNIX_MS" ]
    }
  ruby {
  code =&gt; "event['duration'] = event['eTime'] - event['sTime']"
  }
  
  }
  if [type] =~ /3[1-6]/ {
    grok {
  patterns_dir =&gt; "./patterns"
    match =&gt; [ "message" , ";%{Args:method};%{Args:sessionid};%{INT:traceID:int};%{INT:sTime:int};%{INT:eTime:int};%{HOSTNAME:hostname};%{INT:eoi:int};%{INT:ess:int};URL{%{HttpField:url}};RequestHeader{%{HttpField:ReqHeader}};RequestPara{%{HttpField:ReqPara}};RequestAttr{%{HttpField:ReqAttr}};SessionAttr{%{HttpField:SessionAttr}};ResponseHeader{%{HttpField:ResHeader}}"]
    }
   kv {
  source =&gt; "ReqHeader"
      field_split =&gt; ";"
          value_split =&gt; ":"
  target =&gt; "ReqHeader"
   }
   kv {
  source =&gt; "ResHeader"
      field_split =&gt; ";"
          value_split =&gt; ":"
  target =&gt; "ResHeader"
    }
  date {
      match =&gt; [ "sTime" , "UNIX_MS" ]
    }
  ruby {
  code =&gt; "event['duration'] = event['eTime'] - event['sTime']"
  }
  }
  if [type] == "30" {
    grok {
  patterns_dir =&gt; "./patterns"
    match =&gt; [ "message" ,";%{Args:method};%{Args:sessionid};%{INT:traceID:int};%{INT:sTime:int};%{INT:eTime:int};%{HOSTNAME:hostname};%{INT:eoi:int};%{INT:ess:int};URL{%{HttpField:url}};RequestHeader{%{HttpField:ReqHeader}};RequestPara{%{HttpField:ReqPara}};RequestAttr{%{HttpField:ReqAttr}};SessionAttr{%{HttpField:SessionAttr}}"
    ]
    }
   kv {
  source =&gt; "ReqHeader"
      field_split =&gt; ";"
          value_split =&gt; ":"
  target =&gt; "ReqHeader"
   }
   kv {
  source =&gt; "ResHeader"
      field_split =&gt; ";"
          value_split =&gt; ":"
  target =&gt; "ResHeader"
    }
  date {
      match =&gt; [ "sTime" , "UNIX_MS" ]
    }
  ruby {
  code =&gt; "event['duration'] = event['eTime'] - event['sTime']"
  }
  }
  
  if [type]=="20" {
  grok {
  patterns_dir =&gt; "./patterns"
  match =&gt; [ "message" , ";%{Args:method};%{INT:traceID:int};%{INT:sTime:int};%{INT:eTime:int};%{HOSTNAME:hostname};%{INT:eoi:int};%{INT:ess:int};%{INT:mtype};%{Args:DBUrl}"]
  }
  date {
      match =&gt; [ "sTime" , "UNIX_MS" ]
    }
  ruby {
  code =&gt; "event['duration'] = event['eTime'] - event['sTime']"
  }
  }
  if [type]=="21" {
  grok {
  patterns_dir =&gt; "./patterns"
  match =&gt; [ "message" , ";%{Args:method};%{INT:traceID:int};%{INT:sTime:int};%{INT:eTime:int};%{HOSTNAME:hostname};%{INT:eoi:int};%{INT:ess:int};%{INT:mtype};%{Args:sql};%{Args:bindVariables}"]
  }
  date {
      match =&gt; [ "sTime" , "UNIX_MS" ]
    }
  ruby {
  code =&gt; "event['duration'] = event['eTime'] - event['sTime']"
  }
  }
  if [type]=="12" {
  grok {
  patterns_dir =&gt; "./patterns"
  match =&gt; [ "message" , ";%{Args:method};%{INT:traceID:int};%{INT:sTime:int};%{INT:eTime:int};%{HOSTNAME:hostname};%{INT:eoi:int};%{INT:ess:int};%{Args:logStack}"]
  }
  date {
      match =&gt; [ "sTime" , "UNIX_MS" ]
    }
  ruby {
  code =&gt; "event['duration'] = event['eTime'] - event['sTime']"
  }
  }
  if [type]=="11" {
  grok {
  patterns_dir =&gt; "./patterns"
  match =&gt; [ "message" , ";%{Args:method};%{INT:traceID};%{INT:sTime:int};%{INT:eTime:int};%{HOSTNAME:hostname};%{INT:eoi:int};%{INT:ess:int};%{Args:errorStack}"]
  }
  date {
      match =&gt; [ "sTime" , "UNIX_MS" ]
    }
  ruby {
  code =&gt; "event['duration'] = event['eTime'] - event['sTime']"
  }
  }
  
  
  if [type]=="50" {
  grok {
  patterns_dir =&gt; "./patterns"
  match =&gt; [ "message" , ";%{INT:sTime:int};%{HOSTNAME:host};%{Args:JVMName};%{Args:GCName};%{INT:count:int};%{INT:time:int}"]
  }
  date {
      match =&gt; [ "sTime" , "UNIX_MS" ]
    }
  }
  if [type]=="51" {
  grok {
  patterns_dir =&gt; "./patterns"
  match =&gt; [ "message" , ";%{INT:sTime:int};%{HOSTNAME:host};%{Args:JVMName};%{INT:maxheap};%{INT:currentheap};%{INT:commitheap};%{INT:iniheap};%{INT:maxnonheap};%{INT:currentnonheap};%{INT:commitnonheap};%{INT:ininonheap}"]
  }
  date {
      match =&gt; [ "sTime" , "UNIX_MS" ]
    }
  } 
  if [type]=="52" {
  grok {
  patterns_dir =&gt; "./patterns"
  match =&gt; [ "message" , ";%{INT:sTime:int};%{HOSTNAME:host};%{Args:JVMName};%{Args:iniloadedclasses};%{Args:currentloadedclasses};%{Args:iniunloadedclasses}"]
  }
  date {
      match =&gt; [ "sTime" , "UNIX_MS" ]
    }
  }
  }
  
  
  output {
    elasticsearch { host =&gt; "127.2.96.1"
         protocol =&gt; "http"
         port =&gt; "8080" }
    stdout { codec =&gt; rubydebug
  }
  }
  </code></pre>