bae开发java应用配置log和log4j

来源:互联网 发布:php入门视频教程下载 编辑:程序博客网 时间:2024/06/05 14:44

-------由于第一次写技术博客,描述的不清楚。如果真的有需要的朋友,可以直接评论问我。一定尽力回答--------


也许你们也会遇到跟我一样的问题,在bae下开发java的web应用,不能使用日志。因为部署在bae上的项目有很多限制,只有使用替代方案。

1.用数据库存日志信息。

2.使用 云环境(BAE) -> 应用调优 ->应用日志 ,这是bae自带的,使用挺方便的。

言归正传,直接来代码。

docs/cplat/rt/java/log百度官方文档


  • 使用jdk自带的Log


开发bae下的java web项目需要在WEB-INF目录下添加duapp-web.xml文件。
根据文档
JDK Log到BaeLog级别映射

日志平台上的展示的日志级别是基于BaeLog的日志级别展示的,因此需要了解java logging日志框架的日志级别与BaeLog级别的映射关系。具体如下:

  • 若级别为SEVERE(1000)或以上,则对应到Baelog的FATAL
  • 若级别为WARNING(900)或以上,则对应到Baelog的WARNING
  • 若级别为INFO(800)或以上,则对应到Baelog的NOTICE
  • 若级别高于CONFIG(700)或以上,则对应到Baelog的TRACE
  • 否则,对应到Baelog的DEBUG

若需要定义JDK Log的日志输出级别,需要在duapp-web.xml中配置一行系统属性,设置方法如下所示,默认级别是INFO。

<property name="java.util.logging.level" value="WARNING"/>
duapp-web.xml
<?xml version="1.0" encoding="utf-8"?><du-web-app xmlns="http://bae.baidu.com/java/1.0">  <!-- 注意级别顺序应该从高往低 -->  <system-properties>    <property name="java.util.logging.level" value="SEVERE"/>    <property name="java.util.logging.level" value="WARNING"/>    <property name="java.util.logging.level" value="INFO"/>  </system-properties></du-web-app>

注意:定义日志输出级别,务必从高往低依次定义。

写个servlet测试
public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {Logger log = Logger.getLogger("Test.class");log.log(Level.INFO, "这是一条测试信息");log.log(Level.SEVERE, "这是一条测试信息");log.log(Level.SEVERE, "这是一条测试信息" + new Date().toLocaleString());log.log(Level.WARNING,"这是一条测试信息");}


观察


  • 使用Log4j


log4j就没什么会弄错的了。但是还是把官方文档抄下来吧。
例子就不写了。

Log4J与BaeLog级别的映射关系。具体如下:

  • 若级别为ERROR或以上,则对应到Baelog的FATAL
  • 若级别为WARN或以上,则对应到Baelog的WARNING
  • 若级别为INFO或以上,则对应到Baelog的NOTICE
  • 若级别高于DEBUG或以上,则对应到Baelog的DEBUG
  • 否则,对应到Baelog的TRACE

Log4J使用示例

首先,下载BaeLog的适配包立即下载,将其放到应用的lib目录下;另外,还需在Log4J的配置当中将Appender设为BAE的,以log4j.properties为例:

log4j.rootLogger=INFO, A2log4j.appender.A2=com.baidu.bae.api.baelog.BaeAppenderlog4j.appender.A2.layout=org.apache.log4j.PatternLayoutlog4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n



原创粉丝点击