 		@serverExpress = servers.serverExpress
 		@serverHttp = servers.serverHttp
 
-	# The caterpillar instance bound to docpad
+	# The caterpillar instances bound to docpad
 	loggerInstances: null
-	getLogger: (all=false) ->
-		if all
-			@loggerInstances
+	getLogger: -> @loggerInstances?.logger
+	getLoggers: -> @loggerInstances
+	setLoggers: (loggers) ->
+		if @loggerInstances
+			@warn('Loggers have already been set')
 		else
-			@loggerInstances?.logger
-	setLogger: (value,all=false) ->
-		if all or value.logger?
-			@loggerInstances = value
-		else
-			@loggerInstances ?= {}
-			@loggerInstances.logger = value
-		@
+			@loggerInstances = loggers
+		return loggers
 
 	# The action runner instance bound to docpad
 	actionRunnerInstance: null

		# Progress
		if @getLogLevel() is 6 and 'development' in @getEnvironments()
			opts.progress ?= require('progressbar').create()
			docpad.getLogger(true).last.unpipe(process.stdout)
		finish = (err) ->
			opts.progress?.finish()
			opts.progress = null
			docpad.getLogger(true).last.pipe(process.stdout)
			return next(err)

		# Re-load and re-render only what is necessary

	# Set Log Level
	setLogLevel: (level) ->
		@getLogger().setConfig({level})
		if level is 7
			loggers = @getLoggers()
			loggers.debug ?= loggers.logger
				.pipe(
					new (require('caterpillar-human').Human)
				)
				.pipe(
					require('fs').createWriteStream(process.cwd()+'/docpad-debug.log')
				)
		@

	# Are we debugging?
