繁体   English   中英

使用 Java 从日志文件中提取时间戳

[英]Extracting Time stamp from a log file using Java

我需要使用 Java 从以下提取每个唯一的时间戳。 我认为最好的方法是编写一个与“>”符号相关的正则表达式,它围绕着时间戳

2022.01.07 13:28:49 > [CDEThreadPool-thread-10] - 在 doInBackground 可运行中捕获的异常,ThreadId = 56,异常 = ServiceCommunicationException:javax.ejb.EJBException:java.nio.channels.ClosedChannelException common.service.ServiceCommunicationException javax.ejb.EJBException: java.nio.channels.ClosedChannelException at.ejb.AbstractRequestDecorationProxy.invoke(AbstractRequestDecorationProxy.java:116)

2022.01.07 13:36:01 > [CDEThreadPool-thread-10] - javax.ejb.EJBException: java.nio.channels.ClosedChannelException at framework.CDEThreadPool$WrappedRunnable.run(CDEThreadPool.java:143) java.security.ProtectionDomain $JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205) at java.awt.EventDispatchThread.pumpEventsForFilter( EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.aw t.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) Caused by: java.nio.channels .ClosedChannelException: null... 38 common frames omitted 2022.01.07 13:36:01 > [CDEThreadPool-thread-7] - javax.ejb.EJBException: java.nio.channels.ClosedChannelException client.framework.ExtendedNonSOCBoundSwingWorker$2.run( ExtendedNonSOCBoundSwingWorker.java:276) at client.framework.CDEThreadPool$WrappedRunnable.run(CDEThreadPool.java:143) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.Z93F725A07423FE1C889F448B33D21F4 6Z:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) 2022.01.07 13:28:49 > [CDEThreadPool-thread-10] -: 5.12.3-SNAPSHOT 2022.01.07 13: 28:49 > [CDEThreadPool-thread-10] - JRE 版本:1.8.0_292 2022.01.07 13:28:49 > [CDEThreadPool-thread-10] - 操作系统版本:Windows 10、10.0 2022.01.07 13:28: > [CDEThreadPool-thread-10] - 服务器:127.0.0.1:4447 2022.01.07 13:28:49 > [CDEThreadPool-thread-10] - ----------------- ----- 2022.01.07 13:28:49 > [CDEThreadPool-thread-10] - javax.ejb.EJBException: Z93F725A07423FE1C88 9F448B33D21F46Z.nio.channels.ClosedChannelException sdk.common.service.ServiceCommunicationException: javax.ejb.EJBException: java.nio.channels.ClosedChannelException.ejb.AbstractRequestDecorationProxy.invoke(AbstractRequestDecorationProxy.java:116)

output 应该像

2022.01.07 13:28:49 2022.01.07 13:36:01 2022.01.07 13:28:49

您可以对模式\d{4}\.\d{2}\.\d{2} \d{2}:\d{2}:\d{2}进行正则表达式搜索:

String input = "YOUR LOG FILE HERE...";
String pattern = "\\d{4}\\.\\d{2}\\.\\d{2} \\d{2}:\\d{2}:\\d{2}";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(input);
List<String> timestamps = new ArrayList<>();

while (m.find()) {
    timestamps.add(m.group());
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM