我试图一个接一个地读取每个日志条目。这是日志文件的一部分:
at java.net.Socket.<init>(Socket.java:434)
at java.net.Socket.<init>(Socket.java:211)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:40)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:148)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:613)
... 31 more
26.03.2018 14:43:57,113| INFO http-nio-8080-exec-10 configService==nullLooking up configuration service on rmi://localhost:1199/ConfigService |com.ase.common.utils.ConfigurationServiceUtils
26.03.2018 14:43:57,113| WARN http-nio-8080-exec-10 Could not connect to services. |com.ase.common.utils.ConfigurationServiceUtils
java.rmi.ConnectException: Connection refused to host: localhost; nested exception is:
java.net.ConnectException: Connection refused
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:342)
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
这是原木图案
转换模式=%d{dd.MM.yyyy HH:MM:ss,SSS}|%p%t%m|%c%n
我需要从每个条目中获取所有细节,如日期、优先级值、线程、消息和类。这就是我到目前为止所拥有的。
(.*?)\| [A-Z]+ (.*?) (.*?) \|(.*)[\S\s]
它匹配ok所有条目,但没有stacktrace。我需要如何改进我的正则表达式以获得堆栈跟踪?
所以我需要这样做:
Match1 : `26.03.2018 14:43:57,113| INFO http-nio-8080-exec-10 configService==nullLooking up configuration service on rmi://localhost:1199/ConfigService |com.ase.common.utils.ConfigurationServiceUtils`
Group(1)-> `26.03.2018 14:43:57,113`; Group(2)->`INFO`; Group(3)-> `http-nio-8080-exec-10`; Group(4)->`configService==nullLooking up configuration service on rmi://localhost:1199/ConfigService`;
Group(5)->`com.ase.common.utils.ConfigurationServiceUtils`
Match2 : `26.03.2018 14:43:57,113| WARN http-nio-8080-exec-10 Could not connect to services. |com.ase.common.utils.ConfigurationServiceUtils
java.rmi.ConnectException: Connection refused to host: localhost; nested exception is:
java.net.ConnectException: Connection refused
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:342)
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source) `
Group(1)-> `26.03.2018 14:43:57,113`; Group(2)->`WARN`; Group(3)-> `http-nio-8080-exec-10`; Group(4)->`Could not connect to services.`;
Group(5)->`com.ase.common.utils.ConfigurationServiceUtils`; Group(6)->
java.rmi.ConnectException: Connection refused to host: localhost; nested exception is:
java.net.ConnectException: Connection refused...
您应该在正则表达式中使用更具体的捕获组,我将指出:
^(\d+\.\d+\.\d{4}[^|]+)\|\s+(\S+)\s+(\S+)\s+([^|]+)\|(\S+)\s+((?:(?!^\d+\.)[^|])*)
分解:
^(\d\.\d\.\d{4}[^ |]\\\\
匹配以日期开始的行(字幕组1)\s(\s)
匹配空格并捕获以下非空白字符(CG#2)\s(\s)
相同的(CG#3)\s([^ |]\\\\\\\
匹配空格和除\/code>(CG#3)以外的任何内容
(\S)\S
匹配并捕获非空白字符,后跟空格(CG#4) ((?:(?!^\d\)[^ |]*)
temperated pattern,检查它是否位于应该作为下一个匹配开始的行的开头。如果不匹配下一个直接字符(CG#5,可选组)
现场演示
我可以看到它在启动tomcat时被拾取,并且appender配置被正确解析。 我的问题是,我如何让webapp使用其中定义的附加符? 我尝试将和元素放入文件中,但这将生成错误: 中的:
我会很感激任何关于在哪里搜索这些文件的提示。
问题内容: 以下是我在CentOS机器上的Catalina.out文件中唯一条目的录入。我正在使用Spring 3和我的应用程序运行Tomcat 6。他们一整堆,所以我只是挑选了一些不断重复的东西。这并非一直发生,但至少每周发生一次。 问题是我该怎么做才能防止风箱发生? 问题答案: 当您定义一个外部标志时,应该在设置 该标志的同时轮询该线程并退出该线程。否则,该线程可能永远不会看到其他线程所做的更
本文向大家介绍Linux tomcat下catalina.out日志文件分割,包括了Linux tomcat下catalina.out日志文件分割的使用技巧和注意事项,需要的朋友参考一下 Linux tomcat下catalina.out日志文件分割 前言: tomcat默认使用Java.util.logging记录日志,默认只记录tomcat的日志,不记录应用的日志。tomcat支持采用log4
在我的新工作场所,我在新安装的Tomcat上遇到了一些日志文件未找到的错误。这些Tomcat日志文件是catalina.log、localhost_access_log.txt等。那些Tomcat日志文件不在/logs下。该问题同时出现在Windows7上的Tomcat9和Tomcat8上。Windows访问限制会导致此问题吗?
我的WAR正在使用一个log4j FileAppender,该文件是通过WAR中的目录下的文件配置的。 我已将log4j追加器配置为: 通过此配置,我将尝试实现以下功能: 将记录调试级别和更高级别的所有日志消息(因此所有) 我希望文件位于Tomcat的目录下 这种配置是否实现了这些项,如果没有,需要更改什么?