• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

完美解决java 集成解决引入百度智能云bos包,出现log4j打印日志过多问题com.baidubce:api-explorer-sdk

武飞扬头像
冰 主
帮助5

SDK日志

BOS Java SDK发布版本中增加了logback作为slf4j的实现,如工程中没有自己的实现可以直接用,如果工程中有其他的如log4j则可以替代。

默认日志:

如使用默认的logback,则需要配置logback.xml到classpath中。如果没有这个配置文件,日志级别默认为DEBUG。则会有过多的日志打印

  1.  
    <?xml version="1.0" encoding="UTF-8"?>
  2.  
    <configuration>
  3.  
    <property name="LOG_HOME" value="../log"/>
  4.  
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
  5.  
    <encoder>
  6.  
    <pattern>%d{yyyy-MM-dd HH:mm:ss} [%t:%r] - [%p] [%c:%L] %m%n</pattern>
  7.  
    </encoder>
  8.  
    </appender>
  9.  
     
  10.  
    <appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
  11.  
    <file>${LOG_HOME}/bing.log</file>
  12.  
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  13.  
    <FileNamePattern>${LOG_HOME}/bing.%d{yyyy-MM-dd}.log</FileNamePattern>
  14.  
    <MaxHistory>30</MaxHistory>
  15.  
    </rollingPolicy>
  16.  
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  17.  
    <pattern>%d{yyyy-MM-dd HH:mm:ss} [%t:%r] - [%p] [%c:%L] %m%n</pattern>
  18.  
    </encoder>
  19.  
    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
  20.  
    <MaxFileSize>10MB</MaxFileSize>
  21.  
    </triggeringPolicy>
  22.  
    </appender>
  23.  
     
  24.  
    <logger name="com.bingz" level="DEBUG" >
  25.  
    <appender-ref ref="rollingFile"/>
  26.  
    <appender-ref ref="console"/>
  27.  
    </logger>
  28.  
    <logger name="org.quartz">
  29.  
    <appender-ref ref="INFO"/>
  30.  
    </logger>
  31.  
     
  32.  
    <root level="info">
  33.  
    <appender-ref ref="STDOUT"/>
  34.  
    <appender-ref ref="FILE"/>
  35.  
    </root>
  36.  
    </configuration>
学新通

配置说明:

  • property
    定义属性,类似全局变量, 比如上面我们定义的LOG_HOME 日志写入路径文件路径, 下面的appender 可以直接引用

  • appender
    追加器,描述如何写入到文件中(写在哪,格式,文件的切分)
    ConsoleAppender--追加到控制台
    RollingFileAppender--滚动追加到文件
    encoder: 对日志进行格式化。
    rollingPolicy:当发生滚动时,决定RollingFileAppender的行为,涉及文件移动和重命名.TimeBasedRollingPolicy 是根据时间制定滚动策略,
    fileNamePattern:文件输出格式

  • logger
    控制器,描述如何选择追加器
    注意:要是单独为某个类指定的时候,要修改类的全限定名
    appender-ref: 引用前面定义的appender
    level="error": 定义输出的日志级别, 低于此日志级别的日志不会输出
    additivity="false": 这个稍微不太好理解, 下面我写个代码, 实操下.

  • 日志级别
    TRACE->DEBUG ->INFO -> WARN -> ERROR -> FATAL
    从左到右, 由到高

  • root
    根级别日志

自有日志模块:

若使用自己的日志实现模块,例如项目依赖于Maven,则可以类似下面的配置到pom.xml中来去除logback。

  1.  
    <?xml version="1.0" encoding="utf-8"?>
  2.  
     
  3.  
    <dependency>
  4.  
    <groupId>com.百度bce</groupId>
  5.  
    <artifactId>bce-java-sdk</artifactId>
  6.  
    <version>${bce.sdk.version}</version>
  7.  
    <exclusions>
  8.  
    <exclusion>
  9.  
    <groupId>ch.qos.logback</groupId>
  10.  
    <artifactId>logback-classic</artifactId>
  11.  
    </exclusion>
  12.  
    <exclusion>
  13.  
    <groupId>ch.qos.logback</groupId>
  14.  
    <artifactId>logback-core</artifactId>
  15.  
    </exclusion>
  16.  
    <exclusion>
  17.  
    <groupId>org.slf4j</groupId>
  18.  
    <artifactId>jcl-over-slf4j</artifactId>
  19.  
    </exclusion>
  20.  
    </exclusions>
  21.  
    </dependency>
学新通

至此就可以解决log4j日志打印过多问题,以上都是作者开发工程中的解决办法,如有其他解决办法请评论留言

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfhagfk
系列文章
更多 icon
同类精品
更多 icon
继续加载