首页 > 其他分享 >scala配置log4j+slf4j

scala配置log4j+slf4j

时间:2023-10-11 11:35:51浏览次数:47  
标签:log scala log4j slf4j apache org appender

scala配置log4j+slf4j

环境信息

jdk 17
scala 2.11.0

导入依赖

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-reload4j</artifactId>
    <version>2.0.9</version>
</dependency>

添加配置文件

resource目录下新建 log4j.properties

### 设置log级别为DEBUG, 并将log分别分发给stdout, d, e
log4j.rootLogger = DEBUG, stdout, D, E

### stdout相关配置 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Threshold = DEBUG
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] [%d{yyyy-MM-dd HH:mm:ss,SSS}] [%C{1}.%M:%L] [%t] - %m%n


### D相关配置, 输出DEBUG及以上级别的日志到logs/log.log文件 ###
log4j.appender.D = org.apache.log4j.FileAppender
log4j.appender.D.File = logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = [%-5p] [%d{yyyy-MM-dd HH:mm:ss,SSS}] [%C{1}.%M:%L] [%t] - %m%n

### E相关配置, 输出ERROR级别的日志到logs/error.log文件 ###
log4j.appender.E = org.apache.log4j.FileAppender
log4j.appender.E.File = logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = [%-5p] [%d{yyyy-MM-dd HH:mm:ss,SSS}] [%C{1}.%M:%L] [%t] - %m%n

代码测试

import org.slf4j._


object Main{
  private val logger: Logger = LoggerFactory.getLogger(getClass)

  def main(args: Array[String]): Unit = {
    logger.debug("11111111")
    logger.info("22222222")
    logger.warn("33333333")
    logger.error("4444444")
  }
}

依赖冲突

我在导入spark依赖后,出现了依赖冲突,导致log4j配置文件被覆盖,无法生效,

解决方案是找到依赖冲突的那个依赖,手动删除掉依赖自带的log4j

错误信息

SLF4J: Class path contains multiple SLF4J providers.
SLF4J: Found provider [org.apache.logging.slf4j.SLF4JServiceProvider@1ae369b7]
SLF4J: Found provider [org.slf4j.reload4j.Reload4jServiceProvider@6fffcba5]
SLF4J: See https://www.slf4j.org/codes.html#multiple_bindings for an explanation.

删除依赖

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.12</artifactId>
    <version>3.5.0</version>
  
    <exclusions>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>*</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>*</artifactId>
        </exclusion>
    </exclusions>
  
</dependency>

标签:log,scala,log4j,slf4j,apache,org,appender
From: https://www.cnblogs.com/INnoVationv2/p/17756651.html

相关文章

  • Log4j初学
    Log4j入门简介Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIXSyslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制......
  • IDEA @Slf4j cannot find symbol 无法解析问题处理
    IDEA@Slf4jcannotfindsymbol无法解析问题处理问题描述:安装新版本IDEA2022后,项目出现如下问题,网上给的大多都是设置File|Settings|Build,Execution,Deployment|Compiler|AnnotationProcessors和File|Settings|Build,Execution,Deployment|......
  • Apache Log4j Server CVE-2017-5645 反序列化命令执行漏洞
    漏洞描述攻击者可以通过发送一个特别制作的2进制payload,在组件将字节反序列化为对象时,触发并执行构造的payload代码。该漏洞主要是由于在处理ObjectInputStream时,接收函数对于不可靠来源的input没有过滤。可以通过给TcpSocketServer和UdpSocketServer添加可配置的过滤功能以及一......
  • 已解决RuntimeWarning: invalid value encountered in double_scalars
    已解决RuntimeWarning:invalidvalueencounteredindouble_scalars文章目录报错问题解决方法声明报错问题之前在工作中遇到过这个坑,记录一下问题以及解决方法,不一定针对所有情况都能用,但是可以供大家参考。问题描述如下:RuntimeWarning:invalidvalueencounteredindouble_......
  • [Design-Data-Intensive-Application] Scalability
    1scaleupbettercpubettersever2scaleout Weibo/post/user/follow1) postselectpostfrompostsjoinusersonp.send_id=u.idjoinfollowsonf.id=u.idwherecur_id=f.followee.id(read) celebrity->wirtepoststoeveryfollow......
  • ACL2022 paper1 CAKE: A Scalable Commonsense-Aware Framework for Multi-View Knowl
    CAKE:用于多视域知识图谱补全的可扩展常识感知框架ACL2022Abstract  知识图谱存储大规模事实三元组,然而不可避免的是图谱仍然具有不完整性。(问题)以往的只是图谱补全模型仅仅依赖于事实域数据进行实体之间缺失关系的预测,忽略了宝贵的常识知识。以往的知识图嵌入技术存在无效负......
  • idea中启动maven项目报错:程序包lombok.extern.slf4j不存在问题如何解决
    idea中启动maven项目报错:程序包lombok.extern.slf4j不存在问题如何解决1.现象:在springboot的maven项目启动时,报错:Error:(3,27)java:程序包lombok.extern.slf4j不存在错误,编译不报错,maven依赖也合适,项目就是无法启动,现象截图如下:其实不是项目本身或者maven本身的问题,而是......
  • java项目log4j配置
    1.添加maven依赖<dependencies><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency>&l......
  • scala介绍,编写一个hello world程序
    scala介绍 Scala是一种现代的、多范式的编程语言,其设计目的是为了简洁、优雅,同时保持与Java的兼容性。Scala是"scalablelanguage"的缩写,这也意味着它是一个可以应对各种规模应用的语言,从小型脚本到大型系统。以下是Scala的一些关键特点和优点:静态类型......
  • Spark基础——scala基础1.0
    定义对象和强制转化1.定义规则var变量名:变量类型=初始值vari:Int=10varj:Double=3.33//var变量名:变量类型=初始值valo:Int=2//val常量名:变量类型=初始值变量声明时,必须要有初始值i=20//var修饰的变量可以改变,val则不可改变varl=3.33valp="......