- 浏览: 2537843 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
nation:
你好,在部署Mesos+Spark的运行环境时,出现一个现象, ...
Spark(4)Deal with Mesos -
sillycat:
AMAZON Relatedhttps://www.godad ...
AMAZON API Gateway(2)Client Side SSL with NGINX -
sillycat:
sudo usermod -aG docker ec2-use ...
Docker and VirtualBox(1)Set up Shared Disk for Virtual Box -
sillycat:
Every Half an Hour30 * * * * /u ...
Build Home NAS(3)Data Redundancy -
sillycat:
3 List the Cron Job I Have>c ...
Build Home NAS(3)Data Redundancy
Spray(9)REST API Project - Logback
7. How to Work with Logback
"com.typesafe" %% "scalalogging-slf4j" % "1.0.1",
"ch.qos.logback" % "logback-classic" % "1.0.3"
Add these dependencies in build.sbt
I do not like the akka loggers, they are noisy to me, so I turn them off in application.conf
akka {
loglevel = ERROR
}
Here are my configuration of logback.xml, it is almost like log4j.xml or log4j.properties
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<target>System.out</target>
<encoder>
<pattern>%date{MM/dd HH:mm:ss} %-5level[%thread] %logger{1} - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE"class="ch.qos.logback.core.FileAppender">
<file>akka.log</file>
<append>false</append>
<encoder>
<pattern>%date{MM/dd HH:mm:ss} %-5level[%thread] %logger{1} - %msg%n</pattern>
</encoder>
</appender>
<logger name="com.sillycat.easysprayrestserver.actor" level="DEBUG"/>
<logger name="com.sillycat.easysprayrestserver.util" level="INFO"/>
<logger name="com.sillycat.easysprayrestserver.dao" level="DEBUG"/>
<root level="ERROR">
<appender-ref ref="CONSOLE"/>
</root>
<rootlevel="ERROR">
<appender-ref ref="FILE"/>
</root>
</configuration>
There are 2 kinds of logging messages which I am using.
First Type
import com.typesafe.scalalogging.slf4j.Logging
trait URLRouterService extends HttpService with UsersAuthenticationDirectives with Logging {
logger.debug("Hitting the URI resource/admin-only")
Second Type
import org.slf4j.LoggerFactory
val log = LoggerFactory.getLogger(this.getClass().getName())
log.debug("env: " + env)
8. How to work with DB
come soon...
9. How to Work with Actor
come soon…
10. How to do Validation
come soon...
Tips:
1. Error Message:
app[ERROR]: SLF4J: Class path contains multiple SLF4J bindings.
app[ERROR]: SLF4J: Found binding in [jar:file:/Users/carl/.ivy2/cache/org.slf4j/slf4j-nop/jars/slf4j-nop-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
app[ERROR]: SLF4J: Found binding in [jar:file:/Users/carl/.ivy2/cache/ch.qos.logback/logback-classic/jars/logback-classic-1.0.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
app[ERROR]: SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
app[ERROR]: SLF4J: Actual binding is of type [org.slf4j.helpers.NOPLoggerFactory]
app[ERROR]: May 2, 2013 10:19:13 AM com.mchange.v2.log.MLog <clinit>
app[ERROR]: INFO: MLog clients using java 1.4+ standard logging.
app[ERROR]: May 2, 2013 10:19:14 AM com.mchange.v2.c3p0.C3P0Registry banner
app[ERROR]: INFO: Initializing c3p0-0.9.1.2 [built 21-May-2007 15:04:56; debug? true; trace: 10]
Solution:
First step, get rid of the other slf4j package
//"org.slf4j" % "slf4j-nop" % "1.6.4",
Use these dependencies instead
"com.typesafe" %% "scalalogging-slf4j" % "1.0.1",
"ch.qos.logback" % "logback-classic" % "1.0.3"
Second step, get rid of the error of c3p0
Create a file named change-log.properties
com.mchange.v2.log.MLog=com.mchange.v2.log.FallbackMLog
com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL=OFF
That is it, turn off the message in log of c3p0.
2. Sometimes, Not Working
Error Message:
The server was not able to produce a timely response to your request.
Solution:
import akka.util.Timeout
trait URLRouterService extends HttpService with UsersAuthenticationDirectives with Logging {
implicitvaltimeout = Timeout(30 * 1000)
Configure the timeout will help to solve the problem.
References:
http://doc.akka.io/docs/akka/2.1.0/scala/logging.html
http://tantrajnana.blogspot.com/2012/10/using-c3p0-with-logback.html
http://doc.akka.io/docs/akka/snapshot/java/logging.html
7. How to Work with Logback
"com.typesafe" %% "scalalogging-slf4j" % "1.0.1",
"ch.qos.logback" % "logback-classic" % "1.0.3"
Add these dependencies in build.sbt
I do not like the akka loggers, they are noisy to me, so I turn them off in application.conf
akka {
loglevel = ERROR
}
Here are my configuration of logback.xml, it is almost like log4j.xml or log4j.properties
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<target>System.out</target>
<encoder>
<pattern>%date{MM/dd HH:mm:ss} %-5level[%thread] %logger{1} - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE"class="ch.qos.logback.core.FileAppender">
<file>akka.log</file>
<append>false</append>
<encoder>
<pattern>%date{MM/dd HH:mm:ss} %-5level[%thread] %logger{1} - %msg%n</pattern>
</encoder>
</appender>
<logger name="com.sillycat.easysprayrestserver.actor" level="DEBUG"/>
<logger name="com.sillycat.easysprayrestserver.util" level="INFO"/>
<logger name="com.sillycat.easysprayrestserver.dao" level="DEBUG"/>
<root level="ERROR">
<appender-ref ref="CONSOLE"/>
</root>
<rootlevel="ERROR">
<appender-ref ref="FILE"/>
</root>
</configuration>
There are 2 kinds of logging messages which I am using.
First Type
import com.typesafe.scalalogging.slf4j.Logging
trait URLRouterService extends HttpService with UsersAuthenticationDirectives with Logging {
logger.debug("Hitting the URI resource/admin-only")
Second Type
import org.slf4j.LoggerFactory
val log = LoggerFactory.getLogger(this.getClass().getName())
log.debug("env: " + env)
8. How to work with DB
come soon...
9. How to Work with Actor
come soon…
10. How to do Validation
come soon...
Tips:
1. Error Message:
app[ERROR]: SLF4J: Class path contains multiple SLF4J bindings.
app[ERROR]: SLF4J: Found binding in [jar:file:/Users/carl/.ivy2/cache/org.slf4j/slf4j-nop/jars/slf4j-nop-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
app[ERROR]: SLF4J: Found binding in [jar:file:/Users/carl/.ivy2/cache/ch.qos.logback/logback-classic/jars/logback-classic-1.0.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
app[ERROR]: SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
app[ERROR]: SLF4J: Actual binding is of type [org.slf4j.helpers.NOPLoggerFactory]
app[ERROR]: May 2, 2013 10:19:13 AM com.mchange.v2.log.MLog <clinit>
app[ERROR]: INFO: MLog clients using java 1.4+ standard logging.
app[ERROR]: May 2, 2013 10:19:14 AM com.mchange.v2.c3p0.C3P0Registry banner
app[ERROR]: INFO: Initializing c3p0-0.9.1.2 [built 21-May-2007 15:04:56; debug? true; trace: 10]
Solution:
First step, get rid of the other slf4j package
//"org.slf4j" % "slf4j-nop" % "1.6.4",
Use these dependencies instead
"com.typesafe" %% "scalalogging-slf4j" % "1.0.1",
"ch.qos.logback" % "logback-classic" % "1.0.3"
Second step, get rid of the error of c3p0
Create a file named change-log.properties
com.mchange.v2.log.MLog=com.mchange.v2.log.FallbackMLog
com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL=OFF
That is it, turn off the message in log of c3p0.
2. Sometimes, Not Working
Error Message:
The server was not able to produce a timely response to your request.
Solution:
import akka.util.Timeout
trait URLRouterService extends HttpService with UsersAuthenticationDirectives with Logging {
implicitvaltimeout = Timeout(30 * 1000)
Configure the timeout will help to solve the problem.
References:
http://doc.akka.io/docs/akka/2.1.0/scala/logging.html
http://tantrajnana.blogspot.com/2012/10/using-c3p0-with-logback.html
http://doc.akka.io/docs/akka/snapshot/java/logging.html
发表评论
-
Stop Update Here
2020-04-28 09:00 310I will stop update here, and mo ... -
NodeJS12 and Zlib
2020-04-01 07:44 465NodeJS12 and Zlib It works as ... -
Docker Swarm 2020(2)Docker Swarm and Portainer
2020-03-31 23:18 361Docker Swarm 2020(2)Docker Swar ... -
Docker Swarm 2020(1)Simply Install and Use Swarm
2020-03-31 07:58 362Docker Swarm 2020(1)Simply Inst ... -
Traefik 2020(1)Introduction and Installation
2020-03-29 13:52 327Traefik 2020(1)Introduction and ... -
Portainer 2020(4)Deploy Nginx and Others
2020-03-20 12:06 417Portainer 2020(4)Deploy Nginx a ... -
Private Registry 2020(1)No auth in registry Nginx AUTH for UI
2020-03-18 00:56 428Private Registry 2020(1)No auth ... -
Docker Compose 2020(1)Installation and Basic
2020-03-15 08:10 364Docker Compose 2020(1)Installat ... -
VPN Server 2020(2)Docker on CentOS in Ubuntu
2020-03-02 08:04 444VPN Server 2020(2)Docker on Cen ... -
Buffer in NodeJS 12 and NodeJS 8
2020-02-25 06:43 375Buffer in NodeJS 12 and NodeJS ... -
NodeJS ENV Similar to JENV and PyENV
2020-02-25 05:14 462NodeJS ENV Similar to JENV and ... -
Prometheus HA 2020(3)AlertManager Cluster
2020-02-24 01:47 413Prometheus HA 2020(3)AlertManag ... -
Serverless with NodeJS and TencentCloud 2020(5)CRON and Settings
2020-02-24 01:46 330Serverless with NodeJS and Tenc ... -
GraphQL 2019(3)Connect to MySQL
2020-02-24 01:48 241GraphQL 2019(3)Connect to MySQL ... -
GraphQL 2019(2)GraphQL and Deploy to Tencent Cloud
2020-02-24 01:48 443GraphQL 2019(2)GraphQL and Depl ... -
GraphQL 2019(1)Apollo Basic
2020-02-19 01:36 320GraphQL 2019(1)Apollo Basic Cl ... -
Serverless with NodeJS and TencentCloud 2020(4)Multiple Handlers and Running wit
2020-02-19 01:19 306Serverless with NodeJS and Tenc ... -
Serverless with NodeJS and TencentCloud 2020(3)Build Tree and Traverse Tree
2020-02-19 01:19 310Serverless with NodeJS and Tenc ... -
Serverless with NodeJS and TencentCloud 2020(2)Trigger SCF in SCF
2020-02-19 01:18 284Serverless with NodeJS and Tenc ... -
Serverless with NodeJS and TencentCloud 2020(1)Running with Component
2020-02-19 01:17 302Serverless with NodeJS and Tenc ...
相关推荐
AndroidAsync.zip,用于Android的异步套接字、HTTP(客户端 服务器)、WebSocket和socket.io库。基于nio,而不是threads.asynchronous socket、http(client server)和android的websocket库。基于nio,而不是线程。
spray-actor-per-request, 使用每个请求模型中的参与者的示例 Spray 应用程序 每个请求的 Spray这个项目提供了一个示例 Spray 应用程序,它使用每个请求模型中的参与者。为什么要为每个HTTP请求启动一个参与者?轻松...
"slick-pg_spray-json_2.10-0.5.2.2.zip"中的Slick-PG版本,结合了Scala的spray-json库,使得JSON数据可以无缝地在数据库和代码之间转换。spray-json是Scala的一个轻量级、快速且易于使用的JSON库,它可以方便地解析...
描述 "spray-cache-spymemcached.zip" 涉及的是一个针对 Spray 框架的缓存扩展,名为 SpyMemcached 后端。Spray 是一个基于 Scala 的高性能、轻量级的 HTTP 和 RESTful 服务构建工具,常用于构建异步、非阻塞的服务...
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
$ git clone git://github.com/spray/spray-template.git my-project 将目录更改为您的克隆: $ cd 我的项目 启动 SBT: $ sbt 编译一切并运行所有测试: 测试 启动应用程序: 重新开始 浏览到以查看 angular...
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
spray-template使得开发RESTful API和服务时,能够快速、灵活地生成动态HTML或其他文本格式的响应。 在spray-can中,spray-template扮演了重要的角色,它允许开发者使用简洁、可读性强的模板语言来构建HTTP响应的...
概要该项目解释了如何使用具有 CORS 支持的 Spray 实现 REST API假设我假设你有经验和你的工作环境准备好使用以下技术/框架: Akka、SBT、CORS、Spray、cURL、Scala、Git要求这篇文章面向那些有 Scala 工作经验并...
$ git clone https://github.com/Gneotux/pfc-spray.git my-project 将目录更改为您的克隆: $ cd my-project 3(可选)。 使用{DIRECTORY} /src/main/resources/schema.sql中的脚本在postgres中创建数据库,修改...