在Ubuntu上搞Ja va开发时,日志记录几乎是绕不开的一环。常见的日志框架有Log4j、SLF4J、ja va.util.logging等,但用得最顺手、功能也最全面的还得数Log4j 2。下面就以一个真实案例,看看它在Ubuntu环境里是怎么搭起来的。

- 先把基础环境搞定。确保Ubuntu里已经装好了Ja va和Ma ven,如果没有,跑下面这两行命令就行:
sudo apt update
sudo apt install openjdk-11-jdk ma ven
- 接下来新建一个Ma ven项目,或者在现有项目的
pom.xml里补上Log4j 2的依赖。注意版本号,这里用的是2.14.1:
org.apache.logging.log4j
log4j-core
2.14.1
- 配置文件不能少。在
src/main/resources目录下创建一个log4j2.xml,内容可以参考下面这个例子。一个最简单的控制台输出配置:
- 写一段Ja va代码来验证。在
src/main/ja va下创建Main.ja va,内容如下。这里用到了Log4j 2的Logger,分别输出info、warn、error三种级别:
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class Main {
private static final Logger logger = LogManager.getLogger(Main.class);
public static void main(String[] args) {
logger.info("Hello, this is an info message.");
logger.warn("This is a warning message.");
logger.error("This is an error message.");
}
}
- 用Ma ven编译打包,然后运行jar包:
mvn clean install
ja va -jar target/your-project-name.jar
- 看看控制台输出,应该会类似这样:
12:34:56.789 [main] INFO Main - Hello, this is an info message.
12:34:56.790 [main] WARN Main - This is a warning message.
12:34:56.790 [main] ERROR Main - This is an error message.
整个流程走下来并不复杂。当然,实际项目中往往需要把日志写到文件里、按天滚动、控制不同包的日志级别等等,这些都可以通过修改log4j2.xml来实现。Log4j 2的配置灵活性很高,熟练了之后会觉得它比ja va.util.logging舒服太多。