// include the latest version of the regex crate in your Cargo.toml
extern crate regex;
use regex::Regex;
fn main() {
let regex = Regex::new(r"(?m)^(?:SLF4J:|\w+(?:\.\w+)+).*(?:\R(?!(?:SLF4J:|\w+(?:\.\w+)+)|{).*)*").unwrap();
let string = "SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/spark/jars/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/spark/jars/slf4j-log4j12-1.7.30.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type
{\"log_timestamp\": \"2021-02-18T11:33:23.114+0000\", \"log_level\": \"WARN\", \"process_id\": \"zookeeper#2\", \"process_name\": \"zookeeper\", \"thread_id\": 1, \"thread_name\": \"QuorumPeer[myid=2](plain=/0.0.0.0:2181)(secure=disabled)\", \"action_name\": \"org.apache.zookeeper.server.quorum.QuorumPeer\", \"log_message\": \"PeerState set to LOOKING\"}
{\"log_timestamp\": \"2021-02-18T11:33:23.115+0000\", \"log_level\": \"WARN\", \"process_id\": \"zookeeper#2\", \"process_name\": \"zookeeper\", \"thread_id\": 1, \"thread_name\": \"WorkerSender[myid=2]\", \"action_name\": \"org.apache.zookeeper.server.quorum.QuorumPeer\", \"log_message\": \"Failed to resolve address: zk-2.zk-headless.intam.svc.cluster.local\"}
java.net.UnknownHostException: zk-2.zk-headless.intam.svc.cluster.local
at java.net.InetAddress.getAllByName0(InetAddress.java:1281)
at java.net.InetAddress.getAllByName(InetAddress.java:1193)
at java.net.InetAddress.getAllByName(InetAddress.java:1127)
at java.net.InetAddress.getByName(InetAddress.java:1077)
at org.apache.zookeeper.server.quorum.QuorumPeer$QuorumServer.recreateSocketAddresses(QuorumPeer.java:194)
at org.apache.zookeeper.server.quorum.QuorumPeer.recreateSocketAddresses(QuorumPeer.java:764)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:699)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:618)
at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:477)
at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:456)
at java.lang.Thread.run(Thread.java:748)
{\"log_timestamp\": \"2021-02-18T11:33:23.115+0000\", \"log_level\": \"WARN\", \"process_id\": \"zookeeper#2\", \"process_name\": \"zookeeper\", \"thread_id\": 1, \"thread_name\": \"WorkerSender[myid=2]\", \"action_name\": \"org.apache.zookeeper.server.quorum.QuorumPeer\", \"log_message\": \"Failed to resolve address: zk-2.zk-headless.sxc.svc.cluster.local\"}
java.lang.InterruptedException: Timeout while waiting for epoch from quorum
at org.apache.zookeeper.server.quorum.Leader.getEpochToPropose(Leader.java:1227)
at org.apache.zookeeper.server.quorum.Leader.lead(Leader.java:482)
at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:1284)
... 19 more
{\"log_timestamp\": \"2021-02-18T11:33:23.114+0000\", \"log_level\": \"WARN\", \"process_id\": \"zookeeper#2\", \"process_name\": \"zookeeper\", \"thread_id\": 1, \"thread_name\": \"QuorumPeer[myid=2](plain=/0.0.0.0:2181)(secure=disabled)\", \"action_name\": \"org.apache.zookeeper.server.quorum.QuorumPeer\", \"log_message\": \"PeerState set to LOOKING\"}
{\"log_timestamp\": \"2021-02-18T11:33:23.115+0000\", \"log_level\": \"WARN\", \"process_id\": \"zookeeper#2\", \"process_name\": \"zookeeper\", \"thread_id\": 1, \"thread_name\": \"WorkerSender[myid=2]\", \"action_name\": \"org.apache.zookeeper.server.quorum.QuorumPeer\", \"log_message\": \"Failed to resolve address: zk-2.zk-headless.intam.svc.cluster.local\"}
java.net.UnknownHostException: zk-2.zk-headless.intam.svc.cluster.local
at java.net.InetAddress.getAllByName0(InetAddress.java:1281)
at java.net.InetAddress.getAllByName(InetAddress.java:1193)
at java.net.InetAddress.getAllByName(InetAddress.java:1127)
at java.net.InetAddress.getByName(InetAddress.java:1077)
at org.apache.zookeeper.server.quorum.QuorumPeer$QuorumServer.recreateSocketAddresses(QuorumPeer.java:194)
at org.apache.zookeeper.server.quorum.QuorumPeer.recreateSocketAddresses(QuorumPeer.java:764)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:699)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:618)
at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:477)
at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:456)
at java.lang.Thread.run(Thread.java:748)
{\"log_timestamp\": \"2021-02-18T11:33:23.115+0000\", \"log_level\": \"WARN\", \"process_id\": \"zookeeper#2\", \"process_name\": \"zookeeper\", \"thread_id\": 1, \"thread_name\": \"WorkerSender[myid=2]\", \"action_name\": \"org.apache.zookeeper.server.quorum.QuorumPeer\", \"log_message\": \"Failed to resolve address: zk-2.zk-headless.sxc.svc.cluster.local\"}
org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:699) dorg.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManorg.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:699)";
// result will be an iterator over tuples containing the start and end indices for each match in the string
let result = regex.captures_iter(string);
for mat in result {
println!("{:?}", mat);
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Rust, please visit: https://docs.rs/regex/latest/regex/