!7l      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk$Copyright (C) 2004-2011 John GoerzenBSD3%John Goerzen <jgoerzen@complete.org>  experimentalportableSafeCV hsloggerInternal type of log records hsloggerpPriorities are used to define how important a log message is. Users can filter log messages based on priorities.These have their roots on the traditional syslog system. The standard definitions are given below, but you are free to interpret them however you like. They are listed here in ascending importance order.hsloggerDebug messageshslogger InformationhsloggerNormal runtime conditionshsloggerGeneral WarningshsloggerGeneral ErrorshsloggerSevere situationshsloggerTake immediate action hsloggerSystem is unusable   SafeCV*ChsloggerUA LogFormatter is used to format log messages. Note that it is paramterized on the Handlerx to allow the formatter to use information specific to the handler (an example of can be seen in the formatter used in  )hslogger<Returns the passed message as is, ie. no formatting is done.hsloggerTakes a format string, and returns a formatter that may be used to format log messages. The format string may contain variables prefixed with a $-sign which will be replaced at runtime with corresponding values. The currently supported variables are:$msg - The actual log message $loggername - The name of the logger$prio$ - The priority level of the message$tid - The thread ID$pid* - Process ID (Not available on windows)$time - The current time $utcTime - The current time in UTC TimehsloggerLike V but allow the time format to be specified in the first parameter (this is passed to  )hslogger3An extensible formatter that allows new substition  variables to be defined. Each variable has an associated IO action that is used to produce the string to substitute for the variable name. The predefined variables are the same as for   excluding $time and $utcTime.lhslogger Replace some m+ variables in a string with supplied valueshslogger1The LogHandler that the passed message came from hsloggerThe log message and priorityhsloggerThe logger namehsloggerThe formatted log messagelhsloggerDA list of (variableName, action to get the replacement string) pairshslogger!String to perform substitution onhsloggerResulting string$Copyright (C) 2004-2011 John GoerzenBSD3%John Goerzen <jgoerzen@complete.org>  provisionalportableSafeCV5hslogger(All log handlers should adhere to this. \This is the base class for the various log handlers. They should all adhere to this class. hsloggerSets the log level. % will drop items beneath this level.hsloggerGets the current level.hslogger@Set a log formatter to customize the log format for this HandlerhsloggerMLogs an event if it meets the requirements given by the most recent call to .hsloggerAForces an event to be logged regardless of the configured level.hsloggerDCloses the logging system, causing it to close any open files, etc.<Copyright (C) 2007-2011 John Goerzen <jgoerzen@complete.org>BSD30Richard M. Neswold, Jr. <rich.neswold@gmail.com> provisionalportableNoneCV>hsloggerCreates a Growl handler. Once a Growl handler has been created, machines that are to receive the message have to be specified. hsloggerAdds a remote machine's address to the list of targets that will receive log messages. Calling this function sends a registration packet to the machine. This function will throw an exception if the host name cannot be found. hsloggerThe name of the servicehsloggerPriority of handler$Copyright (C) 2004-2011 John GoerzenBSD3$John Goerzen <jgoerzen@complete.org> provisionalportableSafeCVI hsloggerA helper data type. 'hslogger}Create a stream log handler. Log messages sent to this handler will be sent to the stream used initially. Note that the i method will have no effect on stream handlers; it does not actually close the underlying stream. (hsloggerCreate a file log handler. Log messages sent to this handler will be sent to the filename specified, which will be opened in Append mode. Calling $ on the handler will close the file.)hsloggerLike 'A, but note the priority and logger name along with each message. !"#$%&'() '( !"#$%&)$Copyright (C) 2007-2011 John GoerzenBSD3bjorn.buckwalter@gmail.com experimental GHC only?SafeCVV+hslogger:Create a stream log handler that uses hslogger priorities.,hsloggerCreate a stream log handler that uses log4j levels (priorities). The priorities of messages are shoehorned into log4j levels as follows:  DEBUG -> DEBUG INFO, NOTICE -> INFO WARNING -> WARN ERROR, CRITICAL, ALERT -> ERROR EMERGENCY -> FATAL This is useful when the log will only be consumed by log4j tools and you don't want to go out of your way transforming the log or configuring the tools. -hslogger8Create a file log handler that uses hslogger priorities..hslogger9Create a file log handler that uses log4j levels (see , for mappings). +,-.+-,.$Copyright (C) 2004-2011 John GoerzenBSD3%John Goerzen <jgoerzen@complete.org>  provisionalportableNoneCV|21hslogger Options for I. 2hslogger4Automatically log process ID (PID) with each message3hslogger%Send a copy of each message to stderr4hsloggerHFacilities are used by the system to determine where messages are sent. 5hsloggerBKernel messages; you should likely never use this in your programs6hsloggerCGeneral userland messages. Use this if nothing else is appropriate7hslogger E-Mail system8hslogger Daemon (server process) messages9hslogger#Authentication or security messages:hsloggerKInternal syslog messages; you should likely never use this in your programs;hsloggerPrinter messages<hslogger Usenet news=hslogger UUCP messages>hslogger Cron messages?hsloggerPrivate authentication messages@hslogger FTP messagesAhsloggerCLOCAL0 through LOCAL7 are reserved for you to customize as you wishIhsloggerfInitialize the Syslog system using the local system's default interface, /dev/log. Will return a new .On Windows, instead of using /dev/log, this will attempt to send UDP messages to something listening on the syslog port (514) on localhost.Use K if you need more control.JhsloggerCInitialize the Syslog system using an arbitrary Unix socket (FIFO).Not supported under Windows.Khslogger Log to a remote server via UDP. LhsloggerLThe most powerful initialization mechanism. Takes an open datagram socket. IhsloggerBThe name of this program -- will be prepended to every log messagehslogger A list of 1&s. The list [] is perfectly valid. [2] is probably most common here.hsloggerThe 4< value to pass to the syslog system for every message loggedhslogger\Messages logged below this priority will be ignored. To include every message, set this to .hsloggerReturns the new handlerJhslogger Path to FIFOhslogger Program namehslogger1shsloggerFacility valuehsloggerPriority limitKhslogger/Usually AF_INET or AF_INET6; see Network.SockethsloggerRemote hostname. Some use  localhosthslogger514 is the default for sysloghslogger Program namehslogger1shsloggerFacility valuehsloggerPriority limitLhsloggerA datagram sockethsloggerAddress for transmissionshslogger*socket connection mode (stream / datagram)hslogger Program namehslogger1shsloggerFacility valuehsloggerPriority limit0123456789:;<=>?@ABCDEFGHIJKL0IJKL456789:;<=>?@ABCDEFGH123$Copyright (C) 2004-2011 John GoerzenBSD3%John Goerzen <jgoerzen@complete.org>  provisionalportableNoneCVUhslogger\This is the base class for the various log handlers. They should all adhere to this class. PThe name of the root logger, which is always defined and present on the system.nhsloggercThe log tree. Initialize it with a default root logger and (FIXME) a logger for MissingH itself.ohsloggerYGiven a name, return all components of it, starting from the root. Example return value: >["", "MissingH", "System.Cmd.Utils", "System.Cmd.Utils.pOpen"]Vhslogger:Log a message using the given logger at a given priority. WhsloggerLog a message at  priority XhsloggerLog a message at  priority YhsloggerLog a message at  priority ZhsloggerLog a message at  priority [hsloggerLog a message at  priority \hsloggerLog a message at  priority ]hsloggerLog a message at  priority ^hsloggerLog a message at   priority _hsloggerReturns the logger for the given name. If no logger with that name exists, creates new loggers and any necessary parent loggers, with no connected handlers.`hsloggerReturns the root logger.ahslogger>Log a message, assuming the current logger's level permits it.phsloggerHandle a log request.qhslogger Call a handler given a HandlerT.rhslogger%Generate IO actions for the handlers.bhsloggerAdd handler to T. Returns a new T.chsloggerRemove a handler from the Tg. Handlers are removed in the reverse order they were added, so the following property holds for any  h: !removeHandler . addHandler h = id'If no handlers are associated with the T, it is returned unchanged.The root logger's default handler that writes every message to stderr can be removed by using this function before any handlers have been added to the root logger: /updateGlobalLogger rootLoggerName removeHandlerdhsloggerSet the  'Logger'\'Rs list of handlers to the list supplied. All existing handlers are removed first.ehsloggerNReturns the "level" of the logger. Items beneath this level will be ignored.fhsloggerSets the "level" of the T. Returns a new T object with the new level.ghsloggerClears the "level" of the T2. It will now inherit the level of | its parent.hhsloggercUpdates the global record for the given logger to take into account any changes you may have made.ihsloggerHelps you make changes on the given logger. Takes a function that makes changes and writes those changes back to the global database. Here's an example from above ("s" is a ): _updateGlobalLogger "MyApp.BuggyComponent" (setLevel DEBUG . setHandlers [s])jhslogger1Allow graceful shutdown. Release all opened fileshandlersetc.khsloggerDTraps exceptions that may occur, logging them, then passing them on.KTakes a logger name, priority, leading description text (you can set it to ""+ if you don't want any), and action to run. VhsloggerName of the logger to usehsloggerPriority of this messagehsloggerThe log text itselfWhslogger Logger namehslogger Log messageXhslogger Logger namehslogger Log messageYhslogger Logger namehslogger Log messageZhslogger Logger namehslogger Log message[hslogger Logger namehslogger Log message\hslogger Logger namehslogger Log message]hslogger Logger namehslogger Log message^hslogger Logger namehslogger Log messageihslogger Logger namehsloggerFunction to call! TUVWXYZ[\]^_`abcdefghijk!T VWXYZ[\]^jka_`Ubcdefghis   !"#$%&'()*+,,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno#"pqrstuvwxyz&{|}&hslogger-1.2.12-56Gq9WMkLu8HjP8h6hl4qW System.LogSystem.Log.FormatterSystem.Log.HandlerSystem.Log.Handler.GrowlSystem.Log.Handler.SimpleSystem.Log.Handler.Log4jXMLSystem.Log.Handler.SyslogSystem.Log.LoggerSyslogDate.Time.Format formatTime LogRecordPriorityDEBUGINFONOTICEWARNINGERRORCRITICALALERT EMERGENCY $fEqPriority $fOrdPriority$fEnumPriority$fBoundedPriority$fShowPriority$fReadPriority LogFormatter nullFormattersimpleLogFormattertfLogFormatter varFormatter LogHandlersetLevelgetLevel setFormatter getFormatterhandleemitclose growlHandler addTarget$fLogHandlerGrowlHandlerGenericHandlerpriority formatterprivData writeFunc closeFunc streamHandler fileHandlerverboseStreamHandler$fLogHandlerGenericHandlerlog4jStreamHandlerlog4jStreamHandler'log4jFileHandlerlog4jFileHandler' $fShowXML SyslogHandlerOptionPIDPERRORFacilityKERNUSERMAILDAEMONAUTHSYSLOGLPRNEWSUUCPCRONAUTHPRIVFTPLOCAL0LOCAL1LOCAL2LOCAL3LOCAL4LOCAL5LOCAL6LOCAL7openlog openlog_localopenlog_remoteopenlog_generic$fLogHandlerSyslogHandler $fEqFacility$fShowFacility$fReadFacility $fEqOption $fShowOption $fReadOptionLoggerrootLoggerNamelogMdebugMinfoMnoticeMwarningMerrorM criticalMalertM emergencyM getLogger getRootLoggerlogL addHandler removeHandler setHandlers clearLevelsaveGlobalLoggerupdateGlobalLoggerremoveAllHandlers traplogging replaceVarMbaseGHC.Base$logTreecomponentsOfName callHandlerhandlerActions