Error:(3,32) java: 程序包org.apache.logging.log4j不存在

Java中log4j问题解决思路
博客围绕Java中log4j相关问题展开,提及了问题点并给出解决思路,涉及Apache相关技术,为信息技术领域中Java开发及日志框架使用方面的内容。

问题点:

 解决思路:

 

java.io.FileNotFoundException: /home/aiapp/applog/RBOSS_CSF_SERVER/app.log (No such file or directory) at java.io.FileOutputStream.open0(Native Method) at java.io.FileOutputStream.open(FileOutputStream.java:270) at java.io.FileOutputStream.<init>(FileOutputStream.java:213) at java.io.FileOutputStream.<init>(FileOutputStream.java:133) at org.apache.log4j.FileAppender.setFile(FileAppender.java:294) at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165) at com.ai.appframe2.complex.util.AdvanceDailyRollingFileAppender.activateOptions(AdvanceDailyRoll ingFileAppender.java:203) at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307) at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172) at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104) at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842) at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768) at org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:672) at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:516) at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:580) at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:526) at org.apache.log4j.LogManager.<clinit>(LogManager.java:127) at org.apache.log4j.Logger.getLogger(Logger.java:104) at org.apache.commons.logging.impl.Log4JLogger.getLogger(Log4JLogger.java:262) at org.apache.commons.logging.impl.Log4JLogger.<init>(Log4JLogger.java:108) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.ja va:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.apache.commons.logging.impl.LogFactoryImpl.createLogFromClass(LogFactoryImpl.java:1025) at org.apache.commons.logging.impl.LogFactoryImpl.discoverLogImplementation(LogFactoryImpl.java:7 90) at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:541) at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:292) at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:269) at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:655) at com.ai.appframe2.complex.cache.CacheFactory.<clinit>(CacheFactory.java:37) at com.ai.common.CsfStartup.main(CsfStartup.java:19) log4j:ERROR Either File or DatePattern options are not set for appender [applog]. Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class com.ai.appframe2.co mmon.BaseSessionManager at com.ai.appframe2.common.BaseSessionManager.__getUserWithOutLog(BaseSessionManager.java:327) at com.ai.appframe2.common.SessionManager.__getUserWithOutLog(SessionManager.java:57) at org.apache.log4j.helpers.AIPatternParser$StaffCodePatternConverter.getFullyQualifiedName(AIPat ternParser.java:545) at org.apache.log4j.helpers.AIPatternParser$NamedPatternConverter.convert(AIPatternParser.java:49 5) at org.apache.log4j.helpers.PatternConverter.format(PatternConverter.java:65) at org.apache.log4j.AIPatternLayout.format(AIPatternLayout.java:498) at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:310) at org.apache.log4j.WriterAppender.append(WriterAppender.java:162) at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251) at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.j ava:66) at org.apache.log4j.Category.callAppenders(Category.java:206) at org.apache.log4j.Category.forcedLog(Category.java:391) at org.apache.log4j.Category.log(Category.java:856) at org.apache.commons.logging.impl.Log4JLogger.error(Log4JLogger.java:229) at com.ai.appframe2.complex.cache.CacheFactory.<clinit>(CacheFactory.java:127) at com.ai.common.CsfStartup.main(CsfStartup.java:19)
07-10
`org.apache.logging.log4j.Logger` 是 Apache Log4j 2.x 日志框架中的一个核心类。它位于 `org.apache.logging.log4j` 包中。 Log4jApache 提供的一个用于 Java 应用程序的日志记录工具,Log4j 2 是其升级版本,提供了比 Log4j 1.x 更好的性能和功能。 要使用 `org.apache.logging.log4j.Logger`,你需要在项目中引入 Log4j 的依赖包。以下是使用同构建工具引入 Log4j 2 的方式: ### Maven 依赖(Log4j Core 和 API): ```xml <dependencies> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.17.1</version> <!-- 使用最新版本 --> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.17.1</version> </dependency> </dependencies> ``` ### Gradle 依赖: ```groovy implementation 'org.apache.logging.log4j:log4j-core:2.17.1' implementation 'org.apache.logging.log4j:log4j-api:2.17.1' ``` ### 示例代码:使用 Log4j 2 记录日志 ```java import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class Log4jExample { // 获取 Logger 实例 private static final Logger logger = LogManager.getLogger(Log4jExample.class); public static void main(String[] args) { logger.info("This is an info message"); logger.error("This is an error message"); } } ``` ### 解释: - `LogManager.getLogger(Log4jExample.class)`:使用 `LogManager` 来获取一个 `Logger` 实例。 - `logger.info(...)` 和 `logger.error(...)`:分别记录信息和错误级别的日志。 - `org.apache.logging.log4j.Logger` 是 Log4j 2 的接口类,定义了日志记录的方法。 --- ### Log4j 配置文件(log4j2.xml) 你还需要一个配置文件 `log4j2.xml` 来定义日志的输出格式、级别和目标。例如: ```xml <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> </Console> </Appenders> <Loggers> <Root level="info"> <AppenderRef ref="Console"/> </Root> </Loggers> </Configuration> ``` 将该文件放在 `src/main/resources` 目录下。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值