小编use*_*557的帖子

播放无法加载自定义日志返回appender

我已经创建了一个自定义的logback appender.但是play为appender提供了一个ClassNotFound异常.

以下是我的追加者

package log

import ch.qos.logback.core.AppenderBase
import ch.qos.logback.core.UnsynchronizedAppenderBase
import ch.qos.logback.core.spi.ContextAwareBase
import log.model.LogMessage
import data.OrganizationDao
import log.dao.LogDao
import ch.qos.logback.core.status.Status

class MongoAppender extends ContextAwareBase {
  private def add(level:Int, msg: String, ex: Throwable) = {
    val message = ex match {
      case null => LogMessage(None, level, msg, null, null, new Array[String](0))
      case _ => LogMessage(None, level, msg, ex.getClass().getName(), ex.getMessage(), new Array[String](0))
    }

    LogDao.save(message)

  }
  override def addStatus(status:Status) = {
    add(status.getLevel(), status.getMessage(), status.getThrowable())
  }

}
Run Code Online (Sandbox Code Playgroud)

以下是我的logger.xml

<configuration>

    <conversionRule conversionWord="coloredLevel"
        converterClass="play.api.Logger$ColoredLevel" />

    <appender name="Mongo" …
Run Code Online (Sandbox Code Playgroud)

logback playframework

18
推荐指数
1
解决办法
2563
查看次数

HDFS如何修改数据

如果HDFS不允许修改文件,HBase如何存储和修改数据呢?很难找到这个问题的答案,因为结果主要是针对HBase物理数据格式.但我无法找到HBase如何解决HHDFS文件的不变性问题?

hadoop hbase hdfs

2
推荐指数
1
解决办法
3445
查看次数

为什么编译器没有给出错误?

我在C++中使用以下示例程序

#include<iostream>
#include<ctime>
#include<cstdlib>

using namespace std;

namespace mine{
    template<class T>
    inline void swap(T &a, T &b){
        char c= a; //This should not have compiled
        a=b;
        b=c;
    }

}
int main(){
    int a,b;
    cout<< "Enter two values: ";
    cin>>a>>b;
    mine::swap(a,b); //type variable T is instantiated as in
    cout << a <<' '<<b << endl;
}
Run Code Online (Sandbox Code Playgroud)

我期待编译器在swap函数中抛出一个错误,因为c被声明为char,但是分配了泛型类型变量T的变量.不仅如此,在调用swap时,T被实例化为int.但是,不仅g ++没有给出任何错误,程序也能完美运行.为什么会这样?

c++

2
推荐指数
1
解决办法
101
查看次数

标签 统计

c++ ×1

hadoop ×1

hbase ×1

hdfs ×1

logback ×1

playframework ×1