diff --git a/arbor-monad-logger.cabal b/arbor-monad-logger.cabal
--- a/arbor-monad-logger.cabal
+++ b/arbor-monad-logger.cabal
@@ -1,6 +1,6 @@
 cabal-version:  2.2
 name:           arbor-monad-logger
-version:        0.1.0.0
+version:        0.1.1.0
 description:    Please see the README on GitHub at <https://github.com/packetloop/arbor-monad-logger#readme>
 homepage:       https://github.com/packetloop/arbor-monad-logger#readme
 bug-reports:    https://github.com/packetloop/arbor-monad-logger/issues
@@ -20,16 +20,17 @@
   type: git
   location: https://github.com/packetloop/arbor-monad-logger
 
-common base               { build-depends: base               >= 4          && < 5      }
+common base                 { build-depends: base                 >= 4          && < 5      }
 
-common bytestring         { build-depends: bytestring         >= 0.10.0.0   && < 0.11   }
-common fast-logger        { build-depends: fast-logger        >= 2.4.11     && < 2.5    }
-common hedgehog           { build-depends: hedgehog           >= 0.6.1      && < 0.7    }
-common hspec              { build-depends: hspec              >= 2.6.1      && < 2.7    }
-common hw-hspec-hedgehog  { build-depends: hw-hspec-hedgehog  >= 0.1.0.4    && < 0.2    }
-common monad-logger       { build-depends: monad-logger       >= 0.3.28.5   && < 0.4    }
-common mtl                { build-depends: mtl                >= 2.2        && < 2.3    }
-common text               { build-depends: text               >= 1.2.3.0    && < 1.3    }
+common bytestring           { build-depends: bytestring           >= 0.10.0.0   && < 0.11   }
+common fast-logger          { build-depends: fast-logger          >= 2.4.11     && < 2.5    }
+common hedgehog             { build-depends: hedgehog             >= 0.6.1      && < 0.7    }
+common hspec                { build-depends: hspec                >= 2.6.1      && < 2.7    }
+common hw-hspec-hedgehog    { build-depends: hw-hspec-hedgehog    >= 0.1.0.4    && < 0.2    }
+common monad-logger         { build-depends: monad-logger         >= 0.3.28.5   && < 0.4    }
+common mtl                  { build-depends: mtl                  >= 2.2        && < 2.3    }
+common text                 { build-depends: text                 >= 1.2.3.0    && < 1.3    }
+common optparse-applicative { build-depends: optparse-applicative >= 0.14       && < 0.15   }
 
 common common
   default-language: Haskell2010
@@ -39,12 +40,14 @@
           , bytestring
           , fast-logger
           , monad-logger
+          , optparse-applicative
           , text
   hs-source-dirs:   src
-  other-modules:    Paths_arbor_monad_logger
-  autogen-modules:  Paths_arbor_monad_logger
+  other-modules:
   exposed-modules:
       Arbor.Monad.Logger
+      Arbor.Monad.Logger.Options
+      Arbor.Monad.Logger.Types
 
 test-suite arbor-monad-logger-test
   import:   base, common
@@ -63,8 +66,6 @@
           , mtl
   main-is:            Main.hs
   other-modules:      AppEnv
-                    , Paths_arbor_monad_logger
-  autogen-modules:    Paths_arbor_monad_logger
   hs-source-dirs:     app
   ghc-options:        -Wall -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints -O2 -msse4.2 -rtsopts -threaded
   build-depends:      arbor-monad-logger
diff --git a/src/Arbor/Monad/Logger.hs b/src/Arbor/Monad/Logger.hs
--- a/src/Arbor/Monad/Logger.hs
+++ b/src/Arbor/Monad/Logger.hs
@@ -13,6 +13,7 @@
   , pushLogMessage
   , withStdOutTimedFastLogger
   , runTimedLogT
+  , runLogT
   , runTimedFastLoggerLoggingT
   , LogLevel(..)
   , LoggingT(..)
@@ -20,8 +21,9 @@
   , TimedFastLogger(..)
   ) where
 
+import Arbor.Monad.Logger.Types (Logger (..))
 import Control.Monad.IO.Class
-import Control.Monad.Logger   hiding (logDebug, logError, logInfo, logWarn)
+import Control.Monad.Logger     hiding (logDebug, logError, logInfo, logWarn)
 import System.Log.FastLogger
 
 import qualified Control.Monad.Logger  as L
@@ -132,10 +134,13 @@
   tc <- newTimeCache "%Y-%m-%d %T"
   withTimedFastLogger tc (LogStdout defaultBufSize) $ \logger -> f logger
 
+runLogT :: MonadIO m => Logger -> LoggingT m a -> m a
+runLogT (Logger lgr lvl) = runTimedLogT lvl lgr
+
 runTimedLogT :: MonadIO m => LogLevel -> TimedFastLogger -> LoggingT m a -> m a
 runTimedLogT logLevel logger =
   runTimedFastLoggerLoggingT logger . filterLogger (\_ lvl -> lvl >= logLevel)
 
 -- | Run a block using a 'TimedFastLogger'.
 runTimedFastLoggerLoggingT :: TimedFastLogger -> LoggingT m a -> m a
-runTimedFastLoggerLoggingT tfl m = runLoggingT m $ \a b c d -> tfl (defaultTimedLogStr a b c d)
+runTimedFastLoggerLoggingT tfl m = L.runLoggingT m $ \a b c d -> tfl (defaultTimedLogStr a b c d)
diff --git a/src/Arbor/Monad/Logger/Options.hs b/src/Arbor/Monad/Logger/Options.hs
new file mode 100644
--- /dev/null
+++ b/src/Arbor/Monad/Logger/Options.hs
@@ -0,0 +1,18 @@
+module Arbor.Monad.Logger.Options
+( LogLevel (..)
+, logLevelParser
+)
+where
+
+import Control.Monad.Logger (LogLevel (..))
+import Data.Monoid          ((<>))
+import Options.Applicative
+
+logLevelParser :: Parser LogLevel
+logLevelParser =
+  option auto
+    (  long "log-level"
+    <> metavar "LOG_LEVEL"
+    <> showDefault <> value LevelInfo
+    <> help "Log level. Valid values are LevelDebug, LevelInfo, LevelWarn, LevelError"
+    )
diff --git a/src/Arbor/Monad/Logger/Types.hs b/src/Arbor/Monad/Logger/Types.hs
new file mode 100644
--- /dev/null
+++ b/src/Arbor/Monad/Logger/Types.hs
@@ -0,0 +1,17 @@
+{-# LANGUAGE DeriveGeneric #-}
+module Arbor.Monad.Logger.Types
+( Logger(..)
+, TimedFastLogger
+, LogLevel(..)
+)
+where
+
+import Control.Monad.Logger  (LogLevel)
+import System.Log.FastLogger (TimedFastLogger)
+
+import GHC.Generics (Generic)
+
+data Logger = Logger
+  { logger   :: TimedFastLogger
+  , logLevel :: LogLevel
+  } deriving (Generic)
