 		@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

				locale = docpad.getLocale()
				docpad.log('warn', locale.trackError+'\n'+locale.errorFollows, err)

		# Initialize the logger
		logger = new (require('caterpillar').Logger)()
		filter = new (require('caterpillar-filter').Filter)
		last = human = new (require('caterpillar-human').Human)
		logger.pipe(filter).pipe(human).pipe(process.stdout)
		@setLogger({logger,filter,human,last})
		@setLogLevel(6)

		# Log to bubbled events

		@setServer(@config.server)  if @config.server

		# Extract and apply the logger
		@setLogLevel(@config.logLevel)

		# Resolve any paths
