diff options
author | Tavian Barnes <tavianator@tavianator.com> | 2014-04-01 19:34:40 -0400 |
---|---|---|
committer | Tavian Barnes <tavianator@tavianator.com> | 2014-04-01 19:43:57 -0400 |
commit | 77b42b639ff3b8dc7f989cf8a9e65ed102d5105d (patch) | |
tree | 3cf3ca058dcdbeb589037c49971ac38dd7a3e169 /sangria-slf4j/src/main/java | |
parent | 1ce3feb50ef042c52233f0703d9fca708b0d5e30 (diff) | |
download | sangria-77b42b639ff3b8dc7f989cf8a9e65ed102d5105d.tar.xz |
Add sangria-slf4j module.
Diffstat (limited to 'sangria-slf4j/src/main/java')
-rw-r--r-- | sangria-slf4j/src/main/java/com/tavianator/sangria/slf4j/SangriaSlf4jModule.java | 33 | ||||
-rw-r--r-- | sangria-slf4j/src/main/java/com/tavianator/sangria/slf4j/Slf4jLoggerProvider.java | 40 |
2 files changed, 73 insertions, 0 deletions
diff --git a/sangria-slf4j/src/main/java/com/tavianator/sangria/slf4j/SangriaSlf4jModule.java b/sangria-slf4j/src/main/java/com/tavianator/sangria/slf4j/SangriaSlf4jModule.java new file mode 100644 index 0000000..9be0f8a --- /dev/null +++ b/sangria-slf4j/src/main/java/com/tavianator/sangria/slf4j/SangriaSlf4jModule.java @@ -0,0 +1,33 @@ +/********************************************************************* + * Sangria * + * Copyright (C) 2014 Tavian Barnes <tavianator@tavianator.com> * + * * + * This library is free software. It comes without any warranty, to * + * the extent permitted by applicable law. You can redistribute it * + * and/or modify it under the terms of the Do What The Fuck You Want * + * To Public License, Version 2, as published by Sam Hocevar. See * + * the COPYING file or http://www.wtfpl.net/ for more details. * + *********************************************************************/ + +package com.tavianator.sangria.slf4j; + +import com.google.inject.AbstractModule; +import org.slf4j.Logger; + +import com.tavianator.sangria.contextual.ContextSensitiveBinder; + +/** + * Module for SLF4J {@link Logger} injection. + * + * @author Tavian Barnes (tavianator@tavianator.com) + * @version 1.0 + * @since 1.0 + */ +public class SangriaSlf4jModule extends AbstractModule { + @Override + protected void configure() { + ContextSensitiveBinder.create(binder()) + .bind(Logger.class) + .toContextSensitiveProvider(Slf4jLoggerProvider.class); + } +} diff --git a/sangria-slf4j/src/main/java/com/tavianator/sangria/slf4j/Slf4jLoggerProvider.java b/sangria-slf4j/src/main/java/com/tavianator/sangria/slf4j/Slf4jLoggerProvider.java new file mode 100644 index 0000000..cae4836 --- /dev/null +++ b/sangria-slf4j/src/main/java/com/tavianator/sangria/slf4j/Slf4jLoggerProvider.java @@ -0,0 +1,40 @@ +/********************************************************************* + * Sangria * + * Copyright (C) 2014 Tavian Barnes <tavianator@tavianator.com> * + * * + * This library is free software. It comes without any warranty, to * + * the extent permitted by applicable law. You can redistribute it * + * and/or modify it under the terms of the Do What The Fuck You Want * + * To Public License, Version 2, as published by Sam Hocevar. See * + * the COPYING file or http://www.wtfpl.net/ for more details. * + *********************************************************************/ + +package com.tavianator.sangria.slf4j; + +import javax.inject.Singleton; + +import com.google.inject.spi.InjectionPoint; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.tavianator.sangria.contextual.ContextSensitiveProvider; + +/** + * Actual {@link Logger} provider implementation. + * + * @author Tavian Barnes (tavianator@tavianator.com) + * @version 1.0 + * @since 1.0 + */ +@Singleton +class Slf4jLoggerProvider implements ContextSensitiveProvider<Logger> { + @Override + public Logger getInContext(InjectionPoint injectionPoint) { + return LoggerFactory.getLogger(injectionPoint.getDeclaringType().getRawType()); + } + + @Override + public Logger getInUnknownContext() { + return LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME); + } +} |