LoggerFactory.getLogger LogFactory.getLog Logger.getLogger

LoggerFactory.getLogger LogFactory.getLog Logger.getLogger
所需要的不同的jar包

Logger.getLogger(App.class); 所用到的包为 log4j
LogFactory.getLog(App.class) ; 所用到的包为 apache的common-logging包

LoggerFactory.getLogger(App.class)


<!-- slf4j 依赖包 -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.25</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.5</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.0-rc1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.0-rc1</version>
        </dependency>
### Java 编译错误 '找不到符号' 变量 `log` 的解决方案 当遇到编译错误提示‘找不到符号’,特别是针对变量 `log` 时,通常意味着该变量未被正确定义或导入必要的库。以下是几种可能的原因及对应的解决方法: #### 1. 检查日志框架依赖项 如果项目中使用了特定的日志记录工具(如 Log4j 或 SLF4J),则需要确认构建文件(Maven pom.xml 文件或 Gradle build.gradle 文件)已包含相应的依赖声明[^1]。 对于 Maven 用户来说,在项目的 `pom.xml` 中应加入如下配置来引入 SLF4J 和其绑定实现之一: ```xml <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.30</version> </dependency> <!-- Choose one of the following implementations --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> </dependency> ``` 而对于采用 Gradle 构建系统的开发者,则应在 `build.gradle` 添加相似的内容: ```groovy implementation('org.slf4j:slf4j-api:1.7.30') // Select an implementation, e.g., logback implementation('ch.qos.logback:logback-classic:1.2.3') ``` #### 2. 初始化静态字段 确保类级别上存在名为 `log` 的私有静态成员,并通过合适的工厂模式初始化它。例如,利用 Apache Commons Logging 库可以这样做: ```java import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class MyClass { private static final Log LOG = LogFactory.getLog(MyClass.class); } ``` 如果是基于 SLF4J 进行开发的话,则会有所不同: ```java import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class MyClass { private static final Logger logger = LoggerFactory.getLogger(MyClass.class); } ``` #### 3. 验证包名一致性 仔细核对报错信息中的全限定类名称 (`com.example.softwareproject_managem`) 是否实际代码结构相匹配。任何拼写上的差异都可能导致无法识别预期的对象或属性。 #### 4. 清理并重新构建工程 有时 IDE 内部缓存或其他因素可能会干扰到正常的编译流程。尝试清理整个工作区后再执行一次完整的构建操作可以帮助排除这类潜在问题。 ```bash mvn clean install # For Maven projects ./gradlew clean build # For Gradle projects ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值