+
+
+/*
+ * New world logging!
+ * The brief summary:
+ * Logging used to be a simple affair, a FILE * handled by a nonblocking logging class inheriting from EventHandler, that was inserted
+ * into the socket engine, and wrote lines. If nofork was on, it was printf()'d.
+ *
+ * We decided to horribly overcomplicate matters, and create vastly customisable logging. LogManager and LogStream form the visible basis
+ * of the new interface. Basically, a LogStream can be inherited to do different things with logging output. We inherit from it once in core
+ * to create a FileLogStream, that writes to a file, for example. Different LogStreams can hook different types of log messages, and different
+ * levels of output too, for extreme customisation. Multiple LogStreams can hook the same message/levels of output, meaning that e.g. output
+ * can go to a channel as well as a file.
+ *
+ * HOW THIS WORKS
+ * LogManager handles all instances of LogStreams, classes derived from LogStream are instantiated and passed to it.
+ */
+
+/** LogStream base class. Modules (and other stuff) inherit from this to decide what logging they are interested in, and what to do with it.
+ */