Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从日志文件中提取正则表达式直到序列_Javascript_Java_Regex_Logging - Fatal编程技术网

Javascript 从日志文件中提取正则表达式直到序列

Javascript 从日志文件中提取正则表达式直到序列,javascript,java,regex,logging,Javascript,Java,Regex,Logging,我有下面的日志文件,我需要使用regex定义日志格式,以便可以使用它提取日志条目 _20131005_022047874 ALEPO@ALEPO3 **Exception ServiceConnection / createService methord javax.xml.ws.WebServiceException: Failed to access the WSDL at: http://212.118.158.21:8080/tunnel-web/axis/Portlet_ase_Fun

我有下面的日志文件,我需要使用regex定义日志格式,以便可以使用它提取日志条目

_20131005_022047874 ALEPO@ALEPO3 **Exception ServiceConnection / createService methord javax.xml.ws.WebServiceException: Failed to access the WSDL at: http://212.118.158.21:8080/tunnel-web/axis/Portlet_ase_FunctionalDomainService?wsdl. It failed with: 
    Connection refused.
    at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.tryWithMex(RuntimeWSDLParser.java:151)
    at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:133)
    at com.sun.xml.internal.ws.client.WSServiceDelegate.parseWSDL(WSServiceDelegate.java:254)
    at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:217)
    at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:165)
    at com.sun.xml.internal.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:93)
    at javax.xml.ws.Service.<init>(Service.java:56)
    at javax.xml.ws.Service.create(Service.java:680)
    at com.stc.alepo.client.ServiceConnection.createService(ServiceConnection.java:75)
    at com.stc.alepo.client.WSSoapHandler.<init>(WSSoapHandler.java:73)
    at com.stc.alepo.client.WSProcessManager.<init>(WSProcessManager.java:114)
    at com.stc.alepo.client.IcmsAlepoRealTime.start(IcmsAlepoRealTime.java:439)
    at com.stc.alepo.client.IcmsAlepoRealTime.main(IcmsAlepoRealTime.java:97)
Caused by: java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
    at java.net.Socket.connect(Socket.java:529)
    at java.net.Socket.connect(Socket.java:478)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:394)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:529)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:233)
    at sun.net.www.http.HttpClient.New(HttpClient.java:306)
    at sun.net.www.http.HttpClient.New(HttpClient.java:323)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:970)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:911)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:836)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1172)
    at java.net.URL.openStream(URL.java:1010)
    at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.createReader(RuntimeWSDLParser.java:793)
    at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.resolveWSDL(RuntimeWSDLParser.java:251)
    at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:118)
    ... 11 more

_20131005_022047874 ALEPO@ALEPO3 **Exception DCPSoapHandler / constructor methord [Ljava.lang.StackTraceElement;@25b65b7f
_20131005_022047875 ALEPO@ALEPO3 WS17249866 **Exception DCPSoapHandler / invokeSOAPMessage methord java.lang.NullPointerException
    at com.stc.alepo.client.WSSoapHandler.invokeSOAPMessage(WSSoapHandler.java:110)
    at com.stc.alepo.client.WSProcessManager.getWSReply(WSProcessManager.java:174)
    at com.stc.alepo.client.IcmsAlepoRealTime.start(IcmsAlepoRealTime.java:441)
    at com.stc.alepo.client.IcmsAlepoRealTime.main(IcmsAlepoRealTime.java:97)
如何匹配第二个组以提取所有字符,直到第一个组再次出现,或者执行此用例的最佳实践是什么。我有很多日志,我需要以同样的方式定义第二个组,因为时间戳格式可能会随日志而改变


提前感谢。

您可以使用一个正则表达式,将时间戳捕获到1组中,并将其后所有不以时间戳模式开头的行捕获到2组中:

/^(_\d{1,8}_\w+)\s*(.*(?:\r?\n(?!_\d{1,8}_\w+).*)*)/gm

详细信息

  • ^
    -行的开头
  • {1,8}\uw+)
    -第1组(时间戳):
    ,1到8位,
    和1+字字符
  • \s*
    -0+空格
  • (.*(:\r?\n(?!\d{1,8}\uw+).*)
    -第2组(所有时间戳之前):
    • *
      -除换行符以外的任何0+字符
    • (?:\r?\n(?!\d{1,8}\u\w+。*)
      -0+序列:
      • \r?\n(?)\ud{1,8}\uw+
        -未跟在时间戳模式后面的换行符
      • *
        -除换行符以外的任何0+字符

您可以使用一个正则表达式,将时间戳捕获到1组中,并将其后所有不以时间戳模式开头的行捕获到2组中:

/^(_\d{1,8}_\w+)\s*(.*(?:\r?\n(?!_\d{1,8}_\w+).*)*)/gm

详细信息

  • ^
    -行的开头
  • {1,8}\uw+)
    -第1组(时间戳):
    ,1到8位,
    和1+字字符
  • \s*
    -0+空格
  • (.*(:\r?\n(?!\d{1,8}\uw+).*)
    -第2组(所有时间戳之前):
    • *
      -除换行符以外的任何0+字符
    • (?:\r?\n(?!\d{1,8}\u\w+。*)
      -0+序列:
      • \r?\n(?)\ud{1,8}\uw+
        -未跟在时间戳模式后面的换行符
      • *
        -除换行符以外的任何0+字符

Java或JavaScript?您最好使用日志解析器。请看这是否工作正常:^(^\d{1,8}\uw+)\s*(.*(:\r?\n(?)\d{1,8}\uw+)*)Java或JavaScript?您最好使用日志解析器。请看这是否工作正常:^(^\d{1,8}\uw+)\s*(.*(:::\r?\n(?)