import sys

from pikos.monitor import Monitor
from pikos.recorders.text_stream_recorder import TextStreamRecorder
from pikos.monitors.function_monitor import FunctionMonitor

def baserecorder(filter_):
    """ Factory function that returns a default recorder.
    """
    return TextStreamRecorder(sys.stdout, filter_=filter_, auto_flush=True)

def log_functions(filter_):
    """ Factory function that returns a default function logger.
    """
    return FunctionMonitor(baserecorder(filter_=filter_))

#: Easy to find placeholder for the Monitor decorator class.
monitor = Monitor
@@ -166,16 +166,141 @@
 nMonitor
+%0Afrom pikos.monitors.line_monitor import LineMonitor%0Afrom pikos.monitors.function_memory_monitor import FunctionMemoryMonitor
 %0A%0Adef ba
@@ -309,32 +309,37 @@
 recorder(filter_
+=None
 ):%0A    %22%22%22 Facto
@@ -365,23 +365,21 @@
 turns a 
-default
+basic
  recorde
@@ -470,19 +470,23 @@
 e)%0A%0Adef 
-log
+monitor
 _functio
@@ -495,16 +495,21 @@
 (filter_
+=None
 ):%0A    %22
@@ -547,30 +547,369 @@
 s a 
-default function logge
+basic function monitor.%0A    %22%22%22%0A    return Monitor(FunctionMonitor(baserecorder(filter_=filter_)))%0A%0Adef monitor_lines(filter_=None):%0A    %22%22%22 Factory function that returns a basic line monitor.%0A    %22%22%22%0A    return Monitor(LineMonitor(baserecorder(filter_=filter_)))%0A%0Adef memory_on_functions(filter_=None):%0A    %22%22%22 Factory function that returns a basic line monito
 r.%0A 
@@ -926,16 +926,24 @@
  return 
+Monitor(
 Function
@@ -935,32 +935,38 @@
 onitor(FunctionM
+emoryM
 onitor(baserecor
@@ -986,16 +986,190 @@
 ilter_))
+)%0A%0Adef memory_on_lines(filter_=None):%0A    %22%22%22 Factory function that returns a basic line monitor.%0A    %22%22%22%0A    return Monitor(LineMemoryMonitor(baserecorder(filter_=filter_)))
 %0A%0A#: Eas
@@ -1232,16 +1232,17 @@
 onitor = Monitor
+%0A

simplify api