scala编写AKKA程序使用slf4j输出log到文件踩过的坑

scala编写AKKA程序使用slf4j输出log到文件踩过的坑

1.错误:Class path contains multiple SLF4J bindings

    如果错误表现成如下的形式:
    SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/hbase/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
直接删除slf4j-log4j12或者在maven配置文件中
            <exclusions>
        <exclusion>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-api</artifactId>
        </exclusion>
      </exclusions>
即可

如果不是提示: slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class
而是类似:aaaaa.jar!/org/slf4j/impl/StaticLoggerBinder.class
并且aaaaa.jar包是外部引入的依赖其它项目的包,那只能重编aaaaa.jar,并去掉对slf4j-api的依赖

2. 错误:can't be loaded [akka.event.slf4j.Slf4jLogger] due to [akka.event.Logging$LoggerInitializationException: Logger log1-Slf4jLogger did
    
    logback-classic与akka-slf4j_2.11的版本不匹配会出现此错误
    开始在项目中用logback-classic 1.2.3与akka-slf4j_2.11 2.4-M3 报不能加载的错误,换成logback-classic 1.0.9与akka-slf4j_2.11 2.3.11后正常
    
3.错误: log能正常输出到终端,不能输出到文件
    
    pom.xml中resources的配置不能使用如下的配置,而需要使用插件
    <resources>
       <!--控制资源文件的拷贝-->
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <!--<include>**/*.properties</include>-->
          <include>**/*.xml</include>
          <include>**/*.conf</include>
        </includes>
        <filtering>true</filtering>
        <targetPath>${project.build.directory}</targetPath>
      </resource>
    </resources>    
    
    改为
    
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.3</version>       
        <executions>
          <execution>
            <id>copy-xmls</id>
            <phase>process-sources</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.build.directory}</outputDirectory>
              <resources>
                <resource>
                  <!--<directory>${basedir}/src/main/resources</directory>-->
                  <directory>${basedir}</directory>
                  <includes>
                    <include>**/*.xml</include>
                    <include>**/*.conf</include>
                  </includes>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值