Logging
This library uses JUL (java.util.logging) for its debug logs.
Here’s how you can display those logs, depending on your logging library:
Usage with JUL
src/main/resources/logging.properties
handlers = java.util.logging.ConsoleHandler java.util.logging.ConsoleHandler.level = ALL .level = INFO io.socket.level = FINE
src/main/java/MyApp.java
public class MyApp {
private static final Logger logger = Logger.getLogger("MyApp");
public static void main(String[] argz) throws Exception {
InputStream stream = MyApp.class.getResourceAsStream("logging.properties");
LogManager.getLogManager().readConfiguration(stream);
Socket socket = IO.socket(URI.create("https://example.com"));
socket.on(Socket.EVENT_CONNECT, args -> logger.info("connected!"));
socket.connect();
}
}
Reference: https://docs.oracle.com/en/java/javase/17/core/java-logging-overview.html
Usage with Log4j2
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.18.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.18.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jul</artifactId>
<version>2.18.0</version>
</dependency>
...
</dependencies>
...
</project>
Maven repository:
- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api
- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core
- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-jul
src/main/resources/log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="console" target="SYSTEM_OUT" follow="true">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="console" />
</Root>
<Logger name="io.socket" level="TRACE" />
</Loggers>
</Configuration>
src/main/java/MyApp.java
Either by setting the java.util.logging.manager environment variable:
public class MyApp {
private static final Logger logger;
static {
System.setProperty("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager");
logger = LogManager.getLogger(MyApp.class);
}
public static void main(String[] argz) throws Exception {
Socket socket = IO.socket(URI.create("https://example.com"));
socket.on(Socket.EVENT_CONNECT, args -> logger.info("connected!"));
socket.connect();
}
}
Or with the Log4jBridgeHandler class:
public class MyApp {
private static final Logger logger = LogManager.getLogger(MyApp.class);
public static void main(String[] argz) throws Exception {
Log4jBridgeHandler.install(true, "", true);
Socket socket = IO.socket(URI.create("https://example.com"));
socket.on(Socket.EVENT_CONNECT, args -> logger.info("connected!"));
socket.connect();
}
}
Reference: https://logging.apache.org/log4j/2.x/log4j-jul/index.html
Usage with Slf4j + logback
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project>
<dependencies>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.11</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>1.7.36</version>
</dependency>
...
</dependencies>
...
</project>
Maven repository:
- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic
- https://mvnrepository.com/artifact/org.slf4j/jul-to-slf4j
src/main/resources/logback.xml
<configuration>
<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
<resetJUL>true</resetJUL>
</contextListener>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<logger name="io.socket" level="DEBUG" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
src/main/java/MyApp.java
public class MyApp {
private static final Logger logger = LoggerFactory.getLogger(MyApp.class);
static {
SLF4JBridgeHandler.install();
}
public static void main(String[] argz) throws Exception {
Socket socket = IO.socket(URI.create("https://example.com"));
socket.on(Socket.EVENT_CONNECT, args -> logger.info("connected!"));
socket.connect();
}
}
Reference: https://www.slf4j.org/manual.html
