Play framework logging设置

本文围绕Play框架的日志记录器展开,介绍了其基于Log4j和Logback的情况。详细说明了配置方法,包括在conf/application.conf中设置级别、创建conf/log4j.properties全面配置Log4j、配置logback等。还提及了在Java类和模板文件中使用logger,并给出了相关参考链接。

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

play的logger是基于Log4j,Play 2.0 uses logback as its logging engine.

一、配置

1. 在conf/application.conf中设置logger的级别

// Logger
// ~~~~~~~~~~~~~~~~~~~~~~~~~
// You can also configure logback (http://logback.qos.ch/), by providing a logger.xml file in the conf directory 
# Root logger: logger=ERROR # Logger used by the framework: logger.play=INFO # Logger provided to your application: logger.application=DEBUG

root logger配置影响全局,如果需要追踪某个库,如Spring,加入

logger.org.springframework=TRACE

2. 如果需要全面配置Log4j,创建conf/log4j.properties

Play默认的配置是

log4j.rootLogger=ERROR, Console
log4j.logger.play=INFO
# Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p ~ %m %n

参考值是:

log4j.rootLogger=WARN, Rolling
log4j.logger.play=INFO      
log4j.appender.Rolling=org.apache.log4j.RollingFileAppender
log4j.appender.Rolling.File=${application.path}/logs/application.log
log4j.appender.Rolling.MaxFileSize=1MB
log4j.appender.Rolling.MaxBackupIndex=100
log4j.appender.Rolling.layout=org.apache.log4j.PatternLayout
log4j.appender.Rolling.layout.ConversionPattern=%d{ABSOLUTE} %-5p ~ %m %n

log4j.logger.play的等级必须小于或的等于 "application.log"的等级,如"application.log"的等级是INFO,那么log4j的等级必须是INFO或更低如TRACE, DEBUG。

3、 配置logback——输出有两个

  • the standard out stream
  • logs/application.log

如果要自定义logback,修改conf/logger.xml,默认的logger.xml文件内容是

<configuration>    
  <conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel" />  
  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
     <file>${application.home}/logs/application.log</file>
     <encoder>
       <pattern>%date - [%level] - from %logger in %thread %n%message%n%xException%n</pattern>
     </encoder>
   </appender>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%coloredLevel %logger{15} - %message%n%xException{5}</pattern>
    </encoder>
  </appender>  
  <logger name="play" level="INFO" />
  <logger name="application" level="INFO" />
  <root level="ERROR">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="FILE" />
  </root>  
</configuration>

如手动改变logback的配置文件

-Dlogger.resource

$ start -Dlogger.resource=conf/prod-logger.xml
to be loaded from the classpath

-Dlogger.file

$ start -Dlogger.file=/opt/prod/logger.xml
to be loaded from the file system

-Dlogger.url

$ start -Dlogger.url=http://conf.mycompany.com/logger.xml
to be loaded from an URL

二、使用logger

1. java类

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public
class Orders extends Controller { private static Logger logger = LoggerFactory.getLogger(Orders.class); ......
logger.info("Found " + entRef.length + " reference(s) for " + key); }

2. 模板文件中

@{play.Logger.info("tasks=" + tasks)}

 

 

 

参考:

  • http://www.playframework.com/documentation/2.0/SettingsLogger
  • http://www.playframework.com/documentation/1.0/logs
  • http://blog.amyboyd.co.uk/2011/05/how-to-configure-logging-in-play.html

 

转载于:https://www.cnblogs.com/JoannaQ/p/3704751.html

version: '2' services: redis: image: redis:5.0.4 container_name: jetlinks-redis ports: - "10399:10399" volumes: - "./data/redis:/data" command: redis-server --appendonly yes --requirepass "JetLinks@redis" environment: - TZ=Asia/Shanghai elasticsearch: image: elasticsearch:6.8.23 container_name: jetlinks-elasticsearch environment: ES_JAVA_OPTS: "-Djava.net.preferIPv4Stack=true -Xms2g -Xmx2g" TZ: Asia/Shanghai transport.host: 0.0.0.0 discovery.type: single-node bootstrap.memory_lock: "true" discovery.zen.minimum_master_nodes: 1 discovery.zen.ping.unicast.hosts: elasticsearch volumes: - ./data/elasticsearch:/usr/share/elasticsearch/data ports: - "9200:9200" - "9300:9300" kibana: image: kibana:6.8.23 container_name: jetlinks-kibana environment: ELASTICSEARCH_URL: http://elasticsearch:9200 links: - elasticsearch:elasticsearch ports: - "5601:5601" depends_on: - elasticsearch postgres: image: postgres:11-alpine container_name: jetlinks-postgres ports: - "5432:5432" volumes: - "./data/postgres:/var/lib/postgresql/data" environment: POSTGRES_PASSWORD: jetlinks POSTGRES_DB: jetlinks TZ: Asia/Shanghai ui: image: registry.cn-shenzhen.aliyuncs.com/jetlinks/jetlinks-ui-vue:2.2.0 container_name: jetlinks-pro-ui ports: - 9000:80 environment: - "API_BASE_PATH=http://jetlinks:8844/" #API根路径 volumes: - "./data/upload:/usr/share/nginx/html/upload" depends_on: - jetlinks jetlinks: build: . container_name: jetlinks-pro ports: - 8844:8844 # API端口 - 11883:11883 # 通过openAPI使用mqtt订阅平台消息 - 1883-1890:1883-1890 # MQTT端口 - 8801-8810:8801-8810 # 预留端口 - 8801-8810:8801-8810/udp # udp预留端口 - 5060-5061:5060-5061/udp # udp端口 volumes: - "./data:/application/data" # 临时保存协议目录 - "./data/upload:/application/static/upload" # 持久化上传的文件 - "/home/nslvzy/license.lic:/application/license.lic" - "/home/nslvzy/publicCerts.keystore:/application/publicCerts.keystore" environment: - "TZ=Asia/Shanghai" - "JAVA_OPTS=-Xms4G -Xmx8G -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/application/static/upload/dump.hprof" # jvm参数,根据情况调整 - "hsweb.file.upload.static-location=http://172.23.69.181:9000/api/upload" #上传的静态文件访问根地址,为本机的IP或者域名。需要前后端都能访问。 - "spring.r2dbc.url=r2dbc:postgresql://postgres:5432/jetlinks" #数据库连接地址 - "spring.r2dbc.username=postgres" - "spring.r2dbc.password=jetlinks" - "spring.elasticsearch.uris=elasticsearch:9200" # - "spring.elasticsearch.username=admin" # - "spring.elasticsearch.password=admin" - "spring.reactor.debug-agent.enabled=false" #设置为false能提升性能 - "spring.redis.host=redis" - "spring.redis.port=6379" - "spring.redis.password=JetLinks@redis" # - "captcha.enabled=false" #关闭验证码 - "jetlinks.things.metadata.preprocessor.enabled=true" - "zlmedia.play.device-auth.enabled=true" - "zlmedia.play.device-auto-push.enabled=true" - "zlmedia.hook.auth.enabled=false" - "media.onvif.enabled=true" - "logging.level.io.r2dbc=warn" - "logging.level.org.springframework.data=warn" - "logging.level.org.springframework=warn" - "logging.level.org.jetlinks=warn" - "logging.level.org.hswebframework=warn" - "logging.level.org.springframework.data.r2dbc.connectionfactory=warn" - "network.resources[0]=1883-1890/tcp" - "network.resources[1]=8801-8810" - "network.resources[2]=5060-5061/udp" - "license.subject=license" - "license.publicAlias=publicCert" - "license.storePass=a123456" - "license.licensePath=/application/license.lic" - "license.publicKeysStorePath=/application/publicCerts.keystore" links: - redis:redis - postgres:postgres - elasticsearch:elasticsearch depends_on: - elasticsearch - postgres - redis 这是别人提供的yml文件,有哪些是我要修改成本地的
最新发布
07-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值