WebMagic踩坑之路(一)slf4j日志问题

本文介绍了如何解决使用WebMagic框架进行爬虫时遇到的日志问题。通过调整Spring Boot依赖中的日志配置,并创建log4j.properties文件来指定日志输出格式,最终成功解决了日志报错。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一次使用WebMagic框架来进行爬虫。

在找完相关资料之后运行main方法之后,Console总是报错,看到BUG,报错程序员一般都很不爽,我写的程序不可能有问题(蜜汁自信)。

查各种资料终于解决这个slf4j的相关报错信息。

报错截图:

 我用的Spring Boot maven构建的WebMagic工程,默认引入了

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

再引入webmagic相关的包之后,运行出现大量的debug日志。

此时没有加入任何的log配置文件

代码初始化执行时报以下警告

查看maven tree,发现

 

该包是在spring-boot-starter被引入的,所以需要做排除。

但是不能直接排除spring-boot-starter-logging,这样则所有依赖于slf4j的也将失效。

所以排除logback-classic即可

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <exclusions>
        <exclusion>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
        </exclusion>
    </exclusions>
</dependency>

 按照上述操作已经排除了slf4j多版本无法初始化的问题!然而问题并没有解决。。。

新的报错信息:

这是由于WebMagic使用log4j来输出log,必须自己写一个配置文件,来规定log的输出格式,在src目录下新建文件 log4j.properties 

具体写法可以参考下面内容:

# 全局日志级别设定 ,file
log4j.rootLogger=INFO, stdout, file

# 自定义包路径LOG级别
log4j.logger.org.quartz=WARN, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{MM-dd HH:mm:ss}[%p]%m%n

# Output to the File
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=C:\\log4j\\webmagic\\webmagic.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%n%-d{MM-dd HH:mm:ss}-%C.%M()%n[%p]%m%n

这样就彻底解决了webmagic日志的问题!

资料文章:

https://www.cnblogs.com/huanghongbo/p/9089311.html

https://blog.youkuaiyun.com/zqiang_55/article/details/71484539

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值