In unserem Projekt injiziert wir immer dbConfigProvider: DatabaseConfigProvider
in unsere Bean-Objekte und dann Datenbankoperationen mit db.run(some query)
, gibt Future zurück. Wie kann ich einen Protokollwrapper für db.run
schreiben, der alle sql Ausnahmen druckt.Wrapper abfangen Ausnahmen auf db.run Anruf
Beispiel:
class SomeBeanImpl @Inject()(dbConfigProvider: DatabaseConfigProvider) {
private val logger = Logger(getClass)
def someDBQuery() = {
db.run(some wrong sql query) // exception raised in future, I need to print it with logger
}
}
Hinweis: Wenn ich .onFailure
db.run
auf jeder addieren nennen es wird mein Code vermasseln sehr schlecht. Deshalb muss ich diesen Wrapper für alle db.run
Aufrufe schreiben.
Wenn ich db.run
in einer Funktion mit unterschiedlicher Signatur wickel, muss ich es an vielen Stellen ändern, was nicht die beste Option ist. Wie kann ich das implizit tun?
Was ist das Problem, das Sie diesen Wrapper schreiben? – Dima
@Dima Ich habe keine Ahnung, wie es überhaupt geht. –
'def Wrapper (Abfrage: String) = db.run (Abfrage) .onFailure {Fall ex => logger.error (ex)}' – Dima