2013-08-25 4 views
5

Sono abbastanza nuovo ad Akka e sto avendo problemi a caricare il file application.conf. Ho definito un file di configurazione relativamente semplice, composto da:Akka non sta caricando application.conf

akka { 
    logLevel = "NONE" 
    stdout-logLevel = "NONE" 
} 

Da quello che ho capito, questo dovrebbe essere rilevato automaticamente (dopo aver messo nella directory src/main/resources). Tuttavia, quando carico il logger predefinito e visualizzo messaggi "INFO" (saluti), li vedo ancora nella console (vedere il codice seguente).

import akka.actor.{ActorRef, Actor, Props} 
import akka.event.Logging 

object HelloWorldActor { 
    case object Tick 
} 


class HelloWorldActor extends Actor { 
    val logger = Logging(context.system, this) 
    var greeter : Option[ActorRef] = None 

    override def preStart() = { 
    greeter = Some(context.actorOf(Props[Greeter], "greeter")) 
    } 

    def doGreet(): Unit = { 
    logger.info("doing greet") 
    greeter match { 
     case Some(g) => g ! Greeter.Greet 
    } 
    } 
    def receive: Actor.Receive = { 
    case HelloWorldActor.Tick => this.doGreet() 
    } 
} 

L'unica cosa che posso pensare è che ho definito un kernel per eseguirlo in modalità stand-alone e non sono sicuro se c'è qualcosa in più che dovrei fare lì per caricare la configurazione .

Ho messo il mio progetto su GitHub per una migliore ispezione di quello che sto facendo: https://github.com/JohnMurray/hello-akka

Qualsiasi aiuto è molto apprezzato dal momento che sono attualmente un newbie Akka. Inoltre, dovrei menzionare che ho letto la documentazione di configurazione online, ma non mi ha aiutato in questo caso particolare.

grazie!

risposta

10

prova a mettere il file in src/main/risorse/- application.conf non è un file scala, in modo da non appartiene in src/main/Scala/risorse che è la cartella per il pacchetto radice. risorse fonti di scala.

OK. Vedo qual è il problema ora. Non penso ci sia un'impostazione di loglevel NESSUNO.

Secondo il doc ci sono quattro impostazioni: impostazione a ATTENZIONE

# Options: ERROR, WARNING, INFO, DEBUG 
loglevel = "DEBUG" 

prova.

Inoltre, si ha errore di digitazione in loglevel. Si noti che non è un nome CamelCase, ma un livello inferiore di Google.

Nota a margine - aggiungi il plugin akka microkernel alla build SBT e aggiungi il runner che può essere avviato con l'esecuzione o l'azione di riavvio.

+0

Siamo spiacenti, quello era in realtà un errore di battitura. Ho il mio application.conf all'interno della cartella 'src/main/resources'. Il progetto GitHub dovrebbe riflettere anche questo. Colpa mia. –

+0

Testato con una configurazione come la tua e convalidato che NONE emette un messaggio di errore, e WARNING/ERROR funziona bene, quindi molto probabilmente è un refuso. Inoltre, tieni presente che potresti avere un altro file .conf che sovrascrive la reale proprietà akka.loglevel. – abatyuk

+0

Ah, hai ragione. Non sono abbastanza sicuro da dove ho ricevuto "NONE", ma grazie mille per l'aiuto! –