Skip to content
This repository
Browse code

Added Xcode dorset and script to generate using appledoc.

  • Loading branch information...
commit bab2f946cd2acd2ff1989a33ad8ad643ccca70fc 1 parent aacd9db
Bill Garrison authored January 19, 2012

Showing 21 changed files with 2,377 additions and 141 deletions. Show diff stats Hide diff stats

  1. 9  Documentation/README.txt
  2. 52  Documentation/appledoc.sh
  3. 33  Documentation/net.standardorbit.SOLogger.docset/Contents/Info.plist
  4. 1,421  Documentation/net.standardorbit.SOLogger.docset/Contents/Resources/Documents/Classes/SOLogger.html
  5. 535  Documentation/net.standardorbit.SOLogger.docset/Contents/Resources/Documents/css/styles.css
  6. 22  Documentation/net.standardorbit.SOLogger.docset/Contents/Resources/Documents/css/stylesPrint.css
  7. 70  Documentation/net.standardorbit.SOLogger.docset/Contents/Resources/Documents/hierarchy.html
  8. BIN  Documentation/net.standardorbit.SOLogger.docset/Contents/Resources/Documents/img/button_bar_background.png
  9. BIN  Documentation/net.standardorbit.SOLogger.docset/Contents/Resources/Documents/img/disclosure.png
  10. BIN  Documentation/net.standardorbit.SOLogger.docset/Contents/Resources/Documents/img/disclosure_open.png
  11. BIN  Documentation/net.standardorbit.SOLogger.docset/Contents/Resources/Documents/img/library_background.png
  12. BIN  Documentation/net.standardorbit.SOLogger.docset/Contents/Resources/Documents/img/title_background.png
  13. 64  Documentation/net.standardorbit.SOLogger.docset/Contents/Resources/Documents/index.html
  14. BIN  Documentation/net.standardorbit.SOLogger.docset/Contents/Resources/docSet.dsidx
  15. BIN  Documentation/net.standardorbit.SOLogger.docset/Contents/Resources/docSet.mom
  16. BIN  Documentation/net.standardorbit.SOLogger.docset/Contents/Resources/docSet.skidx
  17. BIN  Documentation/net.standardorbit.SOLogger.docset/Contents/Resources/docSet.toc
  18. 300  SOLogger.h
  19. 9  SOLogger.m
  20. 1  SOLogger.xcodeproj/project.pbxproj
  21. 2  SOLoggerDemo/main.m
9  Documentation/README.txt
... ...
@@ -0,0 +1,9 @@
  1
+
  2
+You can regenerate an Xcode docset for SOLogger by running "sh appledoc.sh" from a shell.
  3
+
  4
+The appledoc tool must be installed on your system somewhere, including its templates.
  5
+You can get it from GitHub at <https://github.com/tomaz/appledoc/>.
  6
+
  7
+The appledoc.sh script expects appledoc to be installed in its default location, /usr/local/bin/appledoc.
  8
+
  9
+May the force be with you.
52  Documentation/appledoc.sh
... ...
@@ -0,0 +1,52 @@
  1
+#!/bin/bash
  2
+#
  3
+# Generate an Xcode docset using appledoc
  4
+#
  5
+# I use Xcode-compatible variable names where possible to facilitate
  6
+# running the script from an Xcode run script phase as well as a command line.
  7
+#
  8
+#set -x
  9
+#
  10
+set -e
  11
+
  12
+: ${APPLEDOC:=/usr/local/bin/appledoc}
  13
+: ${APPLEDOC_OUTPUT:=./Documentation}
  14
+: ${PROJECT_DIR:=../}
  15
+: ${PROJECT_NAME:="SOLogger"}
  16
+: ${BUILD_VERSION:="2.0"}
  17
+
  18
+if [ -z ${APPLEDOC} ] || ! [ -x ${APPLEDOC} ]; then
  19
+echo "error: can't find the appledoc binary at $APPLEDOC"
  20
+exit -1
  21
+fi
  22
+
  23
+# Set working directory to the project root
  24
+#
  25
+cd ${PROJECT_DIR}
  26
+echo "working directory: $PWD"
  27
+
  28
+# Run the system's appledoc tool, specifying paths relative to the project root
  29
+#
  30
+printf "Using appledoc from %s\n" ${APPLEDOC}
  31
+
  32
+${APPLEDOC} \
  33
+--project-name="SOLogger" \
  34
+--project-version=${BUILD_VERSION} \
  35
+--project-company="Standard Orbit" \
  36
+--company-id="net.standardorbit" \
  37
+--logformat="xcode" \
  38
+--no-repeat-first-par \
  39
+--no-warn-invalid-crossref \
  40
+--ignore="Documentation" \
  41
+--ignore="UnitTests" \
  42
+--ignore="SOLoggerDemo" \
  43
+--create-docset \
  44
+--install-docset \
  45
+--docset-bundle-name="SOLogger" \
  46
+--docset-desc="SOLogger is a Cocoa class for logging via Apple System Logging (ASL)." \
  47
+--docset-install-path="Documentation" \
  48
+--print-settings \
  49
+--verbose=4 \
  50
+--output=${TMPDIR}appledoc-${PROJECT_NAME} \
  51
+--clean-output \
  52
+$PWD
33  Documentation/net.standardorbit.SOLogger.docset/Contents/Info.plist
... ...
@@ -0,0 +1,33 @@
  1
+<?xml version="1.0" encoding="UTF-8"?>
  2
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3
+<plist version="1.0">
  4
+<dict>
  5
+	<key>CFBundleDevelopmentRegion</key>
  6
+	<string>en</string>
  7
+	<key>CFBundleIdentifier</key>
  8
+	<string>net.standardorbit.SOLogger</string>
  9
+	<key>CFBundleName</key>
  10
+	<string>SOLogger</string>
  11
+	<key>CFBundleShortVersionString</key>
  12
+	<string>2.0</string>
  13
+	<key>CFBundleVersion</key>
  14
+	<string>2.0</string>
  15
+	
  16
+	
  17
+	<key>DocSetDescription</key>
  18
+	<string>SOLogger is a Cocoa class for logging via Apple System Logging (ASL).</string>
  19
+	
  20
+	<key>DocSetFeedName</key>
  21
+	<string>SOLogger Documentation</string>
  22
+	
  23
+	<key>DocSetMinimumXcodeVersion</key>
  24
+	<string>3.0</string>
  25
+	
  26
+	<key>DocSetPublisherIdentifier</key>
  27
+	<string>net.standardorbit.documentation</string>
  28
+	<key>DocSetPublisherName</key>
  29
+	<string>Standard Orbit</string>
  30
+	<key>NSHumanReadableCopyright</key>
  31
+	<string>Copyright © 2012 Standard Orbit. All rights reserved.</string>
  32
+</dict>
  33
+</plist>
1,421  Documentation/net.standardorbit.SOLogger.docset/Contents/Resources/Documents/Classes/SOLogger.html
... ...
@@ -0,0 +1,1421 @@
  1
+<!DOCTYPE HTML>
  2
+<html>
  3
+	<head>
  4
+		<meta http-equiv="Content-Type" content="html/html; charset=utf-8" />
  5
+		<title>SOLogger Class Reference</title>
  6
+		<meta id="xcode-display" name="xcode-display" content="render"/>
  7
+		<meta name="viewport" content="width=550" />
  8
+		<link rel="stylesheet" type="text/css" href="../css/styles.css" media="all" />
  9
+		<link rel="stylesheet" type="text/css" media="print" href="../css/stylesPrint.css" />
  10
+		<meta name="generator" content="appledoc 2.0.5 (build 752)" />
  11
+	</head>
  12
+	<body>
  13
+		<header id="top_header">
  14
+			<div id="library" class="hideInXcode">
  15
+				<h1><a id="libraryTitle" href="../index.html">SOLogger </a></h1>
  16
+				<a id="developerHome" href="../index.html">Standard Orbit</a>
  17
+			</div>
  18
+			
  19
+			<div id="title" role="banner">
  20
+				<h1 class="hideInXcode">SOLogger Class Reference</h1>
  21
+			</div>
  22
+			<ul id="headerButtons" role="toolbar">
  23
+				<li id="toc_button">
  24
+					<button aria-label="Show Table of Contents" role="checkbox" class="open" id="table_of_contents"><span class="disclosure"></span>Table of Contents</button>
  25
+				</li>
  26
+				<li id="jumpto_button" role="navigation">
  27
+					<select id="jumpTo">
  28
+	<option value="top">Jump To&#133;</option>
  29
+	
  30
+	<option value="overview">Overview</option>
  31
+	
  32
+	
  33
+	
  34
+	
  35
+	<option value="tasks">Tasks</option>
  36
+	
  37
+	
  38
+	
  39
+	
  40
+	
  41
+	<option value="properties">Properties</option>
  42
+	
  43
+	<option value="//api/name/additionalDescriptors">&nbsp;&nbsp;&nbsp;&nbsp;additionalDescriptors</option>
  44
+	
  45
+	<option value="//api/name/facility">&nbsp;&nbsp;&nbsp;&nbsp;facility</option>
  46
+	
  47
+	<option value="//api/name/options">&nbsp;&nbsp;&nbsp;&nbsp;options</option>
  48
+	
  49
+	<option value="//api/name/severityFilterMask">&nbsp;&nbsp;&nbsp;&nbsp;severityFilterMask</option>
  50
+	
  51
+	
  52
+	
  53
+	
  54
+	
  55
+	
  56
+	<option value="instance_methods">Instance Methods</option>
  57
+	
  58
+	<option value="//api/name/addDescriptor:">&nbsp;&nbsp;&nbsp;&nbsp;- addDescriptor:</option>
  59
+	
  60
+	<option value="//api/name/alert:">&nbsp;&nbsp;&nbsp;&nbsp;- alert:</option>
  61
+	
  62
+	<option value="//api/name/aslclientRef">&nbsp;&nbsp;&nbsp;&nbsp;- aslclientRef</option>
  63
+	
  64
+	<option value="//api/name/critical:">&nbsp;&nbsp;&nbsp;&nbsp;- critical:</option>
  65
+	
  66
+	<option value="//api/name/debug:">&nbsp;&nbsp;&nbsp;&nbsp;- debug:</option>
  67
+	
  68
+	<option value="//api/name/error:">&nbsp;&nbsp;&nbsp;&nbsp;- error:</option>
  69
+	
  70
+	<option value="//api/name/info:">&nbsp;&nbsp;&nbsp;&nbsp;- info:</option>
  71
+	
  72
+	<option value="//api/name/initWithFacility:options:">&nbsp;&nbsp;&nbsp;&nbsp;- initWithFacility:options:</option>
  73
+	
  74
+	<option value="//api/name/logWithLevel:format:arguments:">&nbsp;&nbsp;&nbsp;&nbsp;- logWithLevel:format:arguments:</option>
  75
+	
  76
+	<option value="//api/name/notice:">&nbsp;&nbsp;&nbsp;&nbsp;- notice:</option>
  77
+	
  78
+	<option value="//api/name/panic:">&nbsp;&nbsp;&nbsp;&nbsp;- panic:</option>
  79
+	
  80
+	<option value="//api/name/removeDescriptor:">&nbsp;&nbsp;&nbsp;&nbsp;- removeDescriptor:</option>
  81
+	
  82
+	<option value="//api/name/warning:">&nbsp;&nbsp;&nbsp;&nbsp;- warning:</option>
  83
+	
  84
+	
  85
+	
  86
+</select>
  87
+				</li>
  88
+			</ul>
  89
+		</header>
  90
+		<nav id="tocContainer" class="isShowingTOC">
  91
+			<ul id="toc" role="tree">
  92
+				
  93
+<li role="treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#overview">Overview</a></span></li>
  94
+
  95
+
  96
+
  97
+
  98
+<li role="treeitem" id="task_treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#tasks">Tasks</a></span><ul>
  99
+	
  100
+	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#task_Initialization">Initialization</a></span></li>
  101
+	
  102
+	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#task_ASL primitive">ASL primitive</a></span></li>
  103
+	
  104
+	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#task_Logging messages">Logging messages</a></span></li>
  105
+	
  106
+	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#task_Logging to external files">Logging to external files</a></span></li>
  107
+	
  108
+	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#task_Properties">Properties</a></span></li>
  109
+	
  110
+</ul></li>
  111
+
  112
+
  113
+
  114
+
  115
+
  116
+<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#properties">Properties</a></span><ul>
  117
+	
  118
+	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/additionalDescriptors">additionalDescriptors</a></span></li>
  119
+	
  120
+	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/facility">facility</a></span></li>
  121
+	
  122
+	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/options">options</a></span></li>
  123
+	
  124
+	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/severityFilterMask">severityFilterMask</a></span></li>
  125
+	
  126
+</ul></li>
  127
+
  128
+
  129
+
  130
+
  131
+
  132
+<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#instance_methods">Instance Methods</a></span><ul>
  133
+	
  134
+	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/addDescriptor:">addDescriptor:</a></span></li>
  135
+	
  136
+	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/alert:">alert:</a></span></li>
  137
+	
  138
+	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/aslclientRef">aslclientRef</a></span></li>
  139
+	
  140
+	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/critical:">critical:</a></span></li>
  141
+	
  142
+	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/debug:">debug:</a></span></li>
  143
+	
  144
+	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/error:">error:</a></span></li>
  145
+	
  146
+	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/info:">info:</a></span></li>
  147
+	
  148
+	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/initWithFacility:options:">initWithFacility:options:</a></span></li>
  149
+	
  150
+	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/logWithLevel:format:arguments:">logWithLevel:format:arguments:</a></span></li>
  151
+	
  152
+	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/notice:">notice:</a></span></li>
  153
+	
  154
+	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/panic:">panic:</a></span></li>
  155
+	
  156
+	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/removeDescriptor:">removeDescriptor:</a></span></li>
  157
+	
  158
+	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/warning:">warning:</a></span></li>
  159
+	
  160
+</ul></li>
  161
+
  162
+
  163
+			</ul>
  164
+		</nav>
  165
+		<article>
  166
+			<div id="contents" class="isShowingTOC" role="main">
  167
+				<a title="SOLogger Class Reference" name="top"></a>
  168
+				<div class="main-navigation navigation-top">
  169
+					<ul>
  170
+	<li><a href="../index.html">Index</a></li>
  171
+	<li><a href="../hierarchy.html">Hierarchy</a></li>
  172
+</ul>
  173
+				</div>
  174
+				<div id="header">
  175
+					<div class="section-header">
  176
+						<h1 class="title title-header">SOLogger Class Reference</h1>
  177
+					</div>		
  178
+				</div>
  179
+				<div id="container">	
  180
+					
  181
+					<div class="section section-specification"><table cellspacing="0"><tbody>
  182
+						<tr>
  183
+	<td class="specification-title">Inherits from</td>
  184
+	<td class="specification-value">NSObject</td>
  185
+</tr><tr>
  186
+	<td class="specification-title">Declared in</td>
  187
+	<td class="specification-value">SOLogger.h<br />SOLogger.m</td>
  188
+</tr>
  189
+						</tbody></table></div>
  190
+					
  191
+					
  192
+					
  193
+					
  194
+					<div class="section section-overview">
  195
+						<a title="Overview" name="overview"></a>
  196
+						<h2 class="subtitle subtitle-overview">Overview</h2>
  197
+						<p><a href="SOLogger.html">SOLogger</a> implements a Cocoa API for logging messages using the Apple System Logging (ASL) service.</p>
  198
+
  199
+<h2>Features</h2>
  200
+
  201
+<ul>
  202
+<li>methods for logging formatted messages at the various severity levels.</li>
  203
+<li>logs messages simultaneously to additional file, pipe, and socket descriptors.</li>
  204
+<li>can use a single logger from multiple threads.</li>
  205
+</ul>
  206
+
  207
+
  208
+<h2><a href="SOLogger.html">SOLogger</a> and Threads</h2>
  209
+
  210
+<p>An <a href="SOLogger.html">SOLogger</a> interacts with the ASL service through a separate connection per thread. The connection is opened using <a href="x-man-page://asl" title="asl(3)">asl_open()</a> and configured with the logger&rsquo;s current severity filtering mask and list of additional logging descriptors.</p>
  211
+
  212
+<p>When <a href="#//api/name/severityFilterMask">severityFilterMask</a> or <a href="#//api/name/additionalDescriptors">additionalDescriptors</a> is changed on the logger, all associated ASL connections are also updated.</p>
  213
+					</div>
  214
+					
  215
+					
  216
+					
  217
+					
  218
+					
  219
+					<div class="section section-tasks">
  220
+						<a title="Tasks" name="tasks"></a>
  221
+						<h2 class="subtitle subtitle-tasks">Tasks</h2>
  222
+						
  223
+						
  224
+						<a title="Initialization" name="task_Initialization"></a>
  225
+						<h3 class="subsubtitle task-title">Initialization</h3>
  226
+
  227
+						<ul class="task-list">
  228
+							<li>
  229
+	<span class="tooltip">
  230
+		<code><a href="#//api/name/initWithFacility:options:">&ndash;&nbsp;initWithFacility:options:</a></code>
  231
+		<span class="tooltip"><p>Designated initializer</p></span>
  232
+	</span>
  233
+	
  234
+	
  235
+</li>
  236
+						</ul>
  237
+						
  238
+						
  239
+						<a title="ASL primitive" name="task_ASL primitive"></a>
  240
+						<h3 class="subsubtitle task-title">ASL primitive</h3>
  241
+
  242
+						<ul class="task-list">
  243
+							<li>
  244
+	<span class="tooltip">
  245
+		<code><a href="#//api/name/aslclientRef">&ndash;&nbsp;aslclientRef</a></code>
  246
+		<span class="tooltip"><p>asl client handle</p></span>
  247
+	</span>
  248
+	
  249
+	
  250
+</li>
  251
+						</ul>
  252
+						
  253
+						
  254
+						<a title="Logging messages" name="task_Logging messages"></a>
  255
+						<h3 class="subsubtitle task-title">Logging messages</h3>
  256
+
  257
+						<ul class="task-list">
  258
+							<li>
  259
+	<span class="tooltip">
  260
+		<code><a href="#//api/name/debug:">&ndash;&nbsp;debug:</a></code>
  261
+		<span class="tooltip"><p>Log a debug level message.</p></span>
  262
+	</span>
  263
+	
  264
+	
  265
+</li><li>
  266
+	<span class="tooltip">
  267
+		<code><a href="#//api/name/info:">&ndash;&nbsp;info:</a></code>
  268
+		<span class="tooltip"><p>Log an info level message.</p></span>
  269
+	</span>
  270
+	
  271
+	
  272
+</li><li>
  273
+	<span class="tooltip">
  274
+		<code><a href="#//api/name/notice:">&ndash;&nbsp;notice:</a></code>
  275
+		<span class="tooltip"><p>Log a notice level message.</p></span>
  276
+	</span>
  277
+	
  278
+	
  279
+</li><li>
  280
+	<span class="tooltip">
  281
+		<code><a href="#//api/name/warning:">&ndash;&nbsp;warning:</a></code>
  282
+		<span class="tooltip"><p>Log a warning level message.</p></span>
  283
+	</span>
  284
+	
  285
+	
  286
+</li><li>
  287
+	<span class="tooltip">
  288
+		<code><a href="#//api/name/error:">&ndash;&nbsp;error:</a></code>
  289
+		<span class="tooltip"><p>Log an error level message.</p></span>
  290
+	</span>
  291
+	
  292
+	
  293
+</li><li>
  294
+	<span class="tooltip">
  295
+		<code><a href="#//api/name/alert:">&ndash;&nbsp;alert:</a></code>
  296
+		<span class="tooltip"><p>Log an alert level message.</p></span>
  297
+	</span>
  298
+	
  299
+	
  300
+</li><li>
  301
+	<span class="tooltip">
  302
+		<code><a href="#//api/name/critical:">&ndash;&nbsp;critical:</a></code>
  303
+		<span class="tooltip"><p>Log a critical level message.</p></span>
  304
+	</span>
  305
+	
  306
+	
  307
+</li><li>
  308
+	<span class="tooltip">
  309
+		<code><a href="#//api/name/panic:">&ndash;&nbsp;panic:</a></code>
  310
+		<span class="tooltip"><p>Log a panic or emergency level message.</p></span>
  311
+	</span>
  312
+	
  313
+	
  314
+</li><li>
  315
+	<span class="tooltip">
  316
+		<code><a href="#//api/name/logWithLevel:format:arguments:">&ndash;&nbsp;logWithLevel:format:arguments:</a></code>
  317
+		<span class="tooltip"><p>Logs a message with the given level.</p></span>
  318
+	</span>
  319
+	
  320
+	
  321
+</li>
  322
+						</ul>
  323
+						
  324
+						
  325
+						<a title="Logging to external files" name="task_Logging to external files"></a>
  326
+						<h3 class="subsubtitle task-title">Logging to external files</h3>
  327
+
  328
+						<ul class="task-list">
  329
+							<li>
  330
+	<span class="tooltip">
  331
+		<code><a href="#//api/name/addDescriptor:">&ndash;&nbsp;addDescriptor:</a></code>
  332
+		<span class="tooltip"><p>Add an external descriptor to the logger.</p></span>
  333
+	</span>
  334
+	
  335
+	
  336
+</li><li>
  337
+	<span class="tooltip">
  338
+		<code><a href="#//api/name/removeDescriptor:">&ndash;&nbsp;removeDescriptor:</a></code>
  339
+		<span class="tooltip"><p>Remove an external descriptor from the logger.</p></span>
  340
+	</span>
  341
+	
  342
+	
  343
+</li>
  344
+						</ul>
  345
+						
  346
+						
  347
+						<a title="Properties" name="task_Properties"></a>
  348
+						<h3 class="subsubtitle task-title">Properties</h3>
  349
+
  350
+						<ul class="task-list">
  351
+							<li>
  352
+	<span class="tooltip">
  353
+		<code><a href="#//api/name/facility">&nbsp;&nbsp;facility</a></code>
  354
+		<span class="tooltip"><p>The <a href="#//api/name/facility">facility</a> identifier.</p></span>
  355
+	</span>
  356
+	<span class="task-item-suffix">property</span>
  357
+	
  358
+</li><li>
  359
+	<span class="tooltip">
  360
+		<code><a href="#//api/name/options">&nbsp;&nbsp;options</a></code>
  361
+		<span class="tooltip"><p>ASL connection <a href="#//api/name/options">options</a>.</p></span>
  362
+	</span>
  363
+	<span class="task-item-suffix">property</span>
  364
+	
  365
+</li><li>
  366
+	<span class="tooltip">
  367
+		<code><a href="#//api/name/additionalDescriptors">&nbsp;&nbsp;additionalDescriptors</a></code>
  368
+		<span class="tooltip"><p>The logger&rsquo;s set of registered external logging descriptors.</p></span>
  369
+	</span>
  370
+	<span class="task-item-suffix">property</span>
  371
+	
  372
+</li><li>
  373
+	<span class="tooltip">
  374
+		<code><a href="#//api/name/severityFilterMask">&nbsp;&nbsp;severityFilterMask</a></code>
  375
+		<span class="tooltip"><p>The logger&rsquo;s severity level filtering mask.</p></span>
  376
+	</span>
  377
+	<span class="task-item-suffix">property</span>
  378
+	
  379
+</li>
  380
+						</ul>
  381
+						
  382
+					</div>
  383
+					
  384
+					
  385
+					
  386
+					
  387
+					
  388
+					<div class="section section-methods">
  389
+						<a title="Properties" name="properties"></a>
  390
+						<h2 class="subtitle subtitle-methods">Properties</h2>
  391
+						
  392
+						<div class="section-method">
  393
+	<a name="//api/name/additionalDescriptors" title="additionalDescriptors"></a>
  394
+	<h3 class="subsubtitle method-title">additionalDescriptors</h3>
  395
+	
  396
+	
  397
+	
  398
+	<div class="method-subsection brief-description">
  399
+		<p>The logger&rsquo;s set of registered external logging descriptors.</p>
  400
+	</div>		
  401
+	
  402
+	
  403
+	<div class="method-subsection method-declaration"><code>@property (nonatomic, readonly) NSSet *additionalDescriptors</code></div>
  404
+	
  405
+	
  406
+	
  407
+	
  408
+	
  409
+	
  410
+	
  411
+	
  412
+	<div class="method-subsection discussion-section">
  413
+		<h4 class="method-subtitle">Discussion</h4>
  414
+		<p>Each descriptor is represented as an NSNumber.</p>
  415
+	</div>
  416
+	
  417
+	
  418
+	
  419
+	
  420
+	
  421
+	<div class="method-subsection see-also-section">
  422
+		<h4 class="method-subtitle">See Also</h4>
  423
+		<ul>
  424
+			
  425
+			<li><code><p><a href="#//api/name/addDescriptor:">&ndash; addDescriptor:</a></p></code></li>
  426
+			
  427
+			<li><code><p><a href="#//api/name/removeDescriptor:">&ndash; removeDescriptor:</a></p></code></li>
  428
+			
  429
+		</ul>
  430
+	</div>
  431
+	
  432
+	
  433
+	
  434
+	<div class="method-subsection declared-in-section">
  435
+		<h4 class="method-subtitle">Declared In</h4>
  436
+		<code class="declared-in-ref">SOLogger.h</code><br />
  437
+	</div>				
  438
+	
  439
+	
  440
+</div>
  441
+						
  442
+						<div class="section-method">
  443
+	<a name="//api/name/facility" title="facility"></a>
  444
+	<h3 class="subsubtitle method-title">facility</h3>
  445
+	
  446
+	
  447
+	
  448
+	<div class="method-subsection brief-description">
  449
+		<p>The <a href="#//api/name/facility">facility</a> identifier.</p>
  450
+	</div>		
  451
+	
  452
+	
  453
+	<div class="method-subsection method-declaration"><code>@property (nonatomic, readonly) NSString *facility</code></div>
  454
+	
  455
+	
  456
+	
  457
+	
  458
+	
  459
+	
  460
+	
  461
+	
  462
+	<div class="method-subsection discussion-section">
  463
+		<h4 class="method-subtitle">Discussion</h4>
  464
+		<p>Use <a href="#//api/name/facility">facility</a> to give the logger a name.
  465
+If you&rsquo;re using a dedicated logger for a subsystem, you might name the subsystem, using that name as the logger&rsquo;s <a href="#//api/name/facility">facility</a> value.</p>
  466
+
  467
+<p>Recommended practice is to follow a &ldquo;reverse DNS notation&rdquo; style for <a href="#//api/name/facility">facility</a> names to avoid namespace collection in ASL among other loggers.</p>
  468
+	</div>
  469
+	
  470
+	
  471
+	
  472
+	
  473
+	
  474
+	
  475
+	
  476
+	<div class="method-subsection declared-in-section">
  477
+		<h4 class="method-subtitle">Declared In</h4>
  478
+		<code class="declared-in-ref">SOLogger.h</code><br />
  479
+	</div>				
  480
+	
  481
+	
  482
+</div>
  483
+						
  484
+						<div class="section-method">
  485
+	<a name="//api/name/options" title="options"></a>
  486
+	<h3 class="subsubtitle method-title">options</h3>
  487
+	
  488
+	
  489
+	
  490
+	<div class="method-subsection brief-description">
  491
+		<p>ASL connection <a href="#//api/name/options">options</a>.</p>
  492
+	</div>		
  493
+	
  494
+	
  495
+	<div class="method-subsection method-declaration"><code>@property (nonatomic, readonly) uint32_t options</code></div>
  496
+	
  497
+	
  498
+	
  499
+	
  500
+	
  501
+	
  502
+	
  503
+	
  504
+	<div class="method-subsection discussion-section">
  505
+		<h4 class="method-subtitle">Discussion</h4>
  506
+		<p>The <a href="#//api/name/options">options</a> value used when opening a connection to the ASL service via asl_open(). The value is a bitwise OR of the following:</p>
  507
+
  508
+<p>ASL_OPT_STDERR
  509
+: Also log messages to stderr (required for viewing messages in Xcode console).</p>
  510
+
  511
+<p>ASL_OPT_NO_DELAY
  512
+: Connect immediately to the ASL service.</p>
  513
+
  514
+<p>ASL_OPT_NO_REMOTE
  515
+: Ignore any remote severity level filtering settings, using only our own <a href="#//api/name/severityFilterMask">severityFilterMask</a> value for filtering.</p>
  516
+	</div>
  517
+	
  518
+	
  519
+	
  520
+	
  521
+	
  522
+	
  523
+	
  524
+	<div class="method-subsection declared-in-section">
  525
+		<h4 class="method-subtitle">Declared In</h4>
  526
+		<code class="declared-in-ref">SOLogger.h</code><br />
  527
+	</div>				
  528
+	
  529
+	
  530
+</div>
  531
+						
  532
+						<div class="section-method">
  533
+	<a name="//api/name/severityFilterMask" title="severityFilterMask"></a>
  534
+	<h3 class="subsubtitle method-title">severityFilterMask</h3>
  535
+	
  536
+	
  537
+	
  538
+	<div class="method-subsection brief-description">
  539
+		<p>The logger&rsquo;s severity level filtering mask.</p>
  540
+	</div>		
  541
+	
  542
+	
  543
+	<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) int severityFilterMask</code></div>
  544
+	
  545
+	
  546
+	
  547
+	
  548
+	
  549
+	
  550
+	
  551
+	
  552
+	<div class="method-subsection discussion-section">
  553
+		<h4 class="method-subtitle">Discussion</h4>
  554
+		<p>A mask value defining a filter of messages to be sent to the ASL database by their severity level. Use the <a href="x-man-page://asl" title="asl(3)">asl(3)</a>
  555
+macro <code>ASL_FILTER_MASK_UPTO()</code> to obtain an appropriate filtering mask value.</p>
  556
+
  557
+<p><strong>Examples</strong></p>
  558
+
  559
+<p>To configure the logger to limit logging of messages to a range of the most severe up to the NOTICE level:</p>
  560
+
  561
+<pre><code>[logger setSeverityFilterMask: ASL_FILTER_MASK_UPTO (ASL_LEVEL_NOTICE)]`
  562
+</code></pre>
  563
+
  564
+<p>To log messages with all severity levels from emergency to <a href="#//api/name/debug:">debug:</a></p>
  565
+
  566
+<pre><code>[logger setSeverityFilterMask: ASL_FILTER_MASK_UPTO (ASL_LEVEL_DEBUG)];
  567
+</code></pre>
  568
+
  569
+<p>To filter messages to include only errors and more severe levels:</p>
  570
+
  571
+<pre><code>[logger setSeverityFilterMask: ASL_FILTER_MASK_UPTO (ASL_LEVEL_ERROR)]; 
  572
+</code></pre>
  573
+	</div>
  574
+	
  575
+	
  576
+	
  577
+	
  578
+	
  579
+	
  580
+	
  581
+	<div class="method-subsection declared-in-section">
  582
+		<h4 class="method-subtitle">Declared In</h4>
  583
+		<code class="declared-in-ref">SOLogger.h</code><br />
  584
+	</div>				
  585
+	
  586
+	
  587
+</div>
  588
+						
  589
+					</div>
  590
+					
  591
+					
  592
+					
  593
+					
  594
+					
  595
+					<div class="section section-methods">
  596
+						<a title="Instance Methods" name="instance_methods"></a>
  597
+						<h2 class="subtitle subtitle-methods">Instance Methods</h2>
  598
+						
  599
+						<div class="section-method">
  600
+	<a name="//api/name/addDescriptor:" title="addDescriptor:"></a>
  601
+	<h3 class="subsubtitle method-title">addDescriptor:</h3>
  602
+	
  603
+	
  604
+	
  605
+	<div class="method-subsection brief-description">
  606
+		<p>Add an external descriptor to the logger.</p>
  607
+	</div>		
  608
+	
  609
+	
  610
+	<div class="method-subsection method-declaration"><code>- (void)addDescriptor:(int)<em>descriptor</em></code></div>
  611
+	
  612
+	
  613
+	<div class="method-subsection arguments-section parameters">
  614
+		<h4 class="method-subtitle parameter-title">Parameters</h4>
  615
+		
  616
+		<dl class="argument-def parameter-def">
  617
+			<dt><em>descriptor</em></dt>
  618
+			<dd><p>The POSIX file descriptor.</p></dd>
  619
+		</dl>
  620
+		
  621
+	</div>
  622
+	
  623
+	
  624
+	
  625
+	
  626
+	
  627
+	
  628
+	
  629
+	<div class="method-subsection discussion-section">
  630
+		<h4 class="method-subtitle">Discussion</h4>
  631
+		<p>Adds the given descriptor to the logger&rsquo;s list of external descriptors that will receive copies of logged messages. The descriptor may point to a file, pipe, or socket.</p>
  632
+
  633
+<p>ASL performs no severity level filtering on messages sent to external descriptors, including standard error. External descriptors will receive copies all messages logged.</p><div class="warning"><p><strong>Note:</strong> External logging descriptors are not automatically opened when added. The caller is responsible for preparing any descriptor for writing before adding to the logger.</p></div>
  634
+	</div>
  635
+	
  636
+	
  637
+	
  638
+	
  639
+	
  640
+	<div class="method-subsection see-also-section">
  641
+		<h4 class="method-subtitle">See Also</h4>
  642
+		<ul>
  643
+			
  644
+			<li><code><p><a href="#//api/name/additionalDescriptors">@property additionalDescriptors</a></p></code></li>
  645
+			
  646
+		</ul>
  647
+	</div>
  648
+	
  649
+	
  650
+	
  651
+	<div class="method-subsection declared-in-section">
  652
+		<h4 class="method-subtitle">Declared In</h4>
  653
+		<code class="declared-in-ref">SOLogger.h</code><br />
  654
+	</div>				
  655
+	
  656
+	
  657
+</div>
  658
+						
  659
+						<div class="section-method">
  660
+	<a name="//api/name/alert:" title="alert:"></a>
  661
+	<h3 class="subsubtitle method-title">alert:</h3>
  662
+	
  663
+	
  664
+	
  665
+	<div class="method-subsection brief-description">
  666
+		<p>Log an alert level message.</p>
  667
+	</div>		
  668
+	
  669
+	
  670
+	<div class="method-subsection method-declaration"><code>- (void)alert:(NSString *)<em>message</em>, <em>...</em></code></div>
  671
+	
  672
+	
  673
+	<div class="method-subsection arguments-section parameters">
  674
+		<h4 class="method-subtitle parameter-title">Parameters</h4>
  675
+		
  676
+		<dl class="argument-def parameter-def">
  677
+			<dt><em>message</em></dt>
  678
+			<dd><p>The message.  Accepts all formatting specifiers available to NSString.</p></dd>
  679
+		</dl>
  680
+		
  681
+		<dl class="argument-def parameter-def">
  682
+			<dt><em>...</em></dt>
  683
+			<dd><p>A comma-separated list of arguments to substitute into format.</p></dd>
  684
+		</dl>
  685
+		
  686
+	</div>
  687
+	
  688
+	
  689
+	
  690
+	
  691
+	
  692
+	
  693
+	
  694
+	
  695
+	
  696
+	
  697
+	
  698
+	
  699
+	
  700
+	<div class="method-subsection declared-in-section">
  701
+		<h4 class="method-subtitle">Declared In</h4>
  702
+		<code class="declared-in-ref">SOLogger.h</code><br />
  703
+	</div>				
  704
+	
  705
+	
  706
+</div>
  707
+						
  708
+						<div class="section-method">
  709
+	<a name="//api/name/aslclientRef" title="aslclientRef"></a>
  710
+	<h3 class="subsubtitle method-title">aslclientRef</h3>
  711
+	
  712
+	
  713
+	
  714
+	<div class="method-subsection brief-description">
  715
+		<p>asl client handle</p>
  716
+	</div>		
  717
+	
  718
+	
  719
+	<div class="method-subsection method-declaration"><code>- (aslclient)aslclientRef</code></div>
  720
+	
  721
+	
  722
+	
  723
+	
  724
+	<div class="method-subsection return">
  725
+		<h4 class="method-subtitle parameter-title">Return Value</h4>
  726
+		<p>The aslclient reference for the calling thread.</p>
  727
+	</div>
  728
+	
  729
+	
  730
+	
  731
+	
  732
+	
  733
+	<div class="method-subsection discussion-section">
  734
+		<h4 class="method-subtitle">Discussion</h4>
  735
+		<p>Every thread has its own connection to the ASL service. This method returns the asl client handle appropriate for use with the calling thread. This value can be passed to other ASL API where an aslclient reference is required.</p>
  736
+	</div>
  737
+	
  738
+	
  739
+	
  740
+	
  741
+	
  742
+	
  743
+	
  744
+	<div class="method-subsection declared-in-section">
  745
+		<h4 class="method-subtitle">Declared In</h4>
  746
+		<code class="declared-in-ref">SOLogger.h</code><br />
  747
+	</div>				
  748
+	
  749
+	
  750
+</div>
  751
+						
  752
+						<div class="section-method">
  753
+	<a name="//api/name/critical:" title="critical:"></a>
  754
+	<h3 class="subsubtitle method-title">critical:</h3>
  755
+	
  756
+	
  757
+	
  758
+	<div class="method-subsection brief-description">
  759
+		<p>Log a critical level message.</p>
  760
+	</div>		
  761
+	
  762
+	
  763
+	<div class="method-subsection method-declaration"><code>- (void)critical:(NSString *)<em>message</em>, <em>...</em></code></div>
  764
+	
  765
+	
  766
+	<div class="method-subsection arguments-section parameters">
  767
+		<h4 class="method-subtitle parameter-title">Parameters</h4>
  768
+		
  769
+		<dl class="argument-def parameter-def">
  770
+			<dt><em>message</em></dt>
  771
+			<dd><p>The message.  Accepts all formatting specifiers available to NSString.</p></dd>
  772
+		</dl>
  773
+		
  774
+		<dl class="argument-def parameter-def">
  775
+			<dt><em>...</em></dt>
  776
+			<dd><p>A comma-separated list of arguments to substitute into format.</p></dd>
  777
+		</dl>
  778
+		
  779
+	</div>
  780
+	
  781
+	
  782
+	
  783
+	
  784
+	
  785
+	
  786
+	
  787
+	
  788
+	
  789
+	
  790
+	
  791
+	
  792
+	
  793
+	<div class="method-subsection declared-in-section">
  794
+		<h4 class="method-subtitle">Declared In</h4>
  795
+		<code class="declared-in-ref">SOLogger.h</code><br />
  796
+	</div>				
  797
+	
  798
+	
  799
+</div>
  800
+						
  801
+						<div class="section-method">
  802
+	<a name="//api/name/debug:" title="debug:"></a>
  803
+	<h3 class="subsubtitle method-title">debug:</h3>
  804
+	
  805
+	
  806
+	
  807
+	<div class="method-subsection brief-description">
  808
+		<p>Log a debug level message.</p>
  809
+	</div>		
  810
+	
  811
+	
  812
+	<div class="method-subsection method-declaration"><code>- (void)debug:(NSString *)<em>message</em>, <em>...</em></code></div>
  813
+	
  814
+	
  815
+	<div class="method-subsection arguments-section parameters">
  816
+		<h4 class="method-subtitle parameter-title">Parameters</h4>
  817
+		
  818
+		<dl class="argument-def parameter-def">
  819
+			<dt><em>message</em></dt>
  820
+			<dd><p>The message text. Accepts all formatting specifiers available to NSString.</p></dd>
  821
+		</dl>
  822
+		
  823
+		<dl class="argument-def parameter-def">
  824
+			<dt><em>...</em></dt>
  825
+			<dd><p>A comma-separated list of arguments to substitute into format.
  826
+This is the least severe message level.</p></dd>
  827
+		</dl>
  828
+		
  829
+	</div>
  830
+	
  831
+	
  832
+	
  833
+	
  834
+	
  835
+	
  836
+