• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!-- HTML header for doxygen 1.8.8-->
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml">
4    <head>
5        <meta http-equiv="X-UA-Compatible" content="IE=edge">
6        <!-- For Mobile Devices -->
7        <meta name="viewport" content="width=device-width, initial-scale=1">
8        <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
9        <meta name="generator" content="Doxygen 1.9.6"/>
10        <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
11        <title>libevdev: Library logging facilities</title>
12        <!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
13        <script type="text/javascript" src="dynsections.js"></script>
14        <link href="search/search.css" rel="stylesheet" type="text/css"/>
15<script type="text/javascript" src="search/searchdata.js"></script>
16<script type="text/javascript" src="search/search.js"></script>
17        <link href="doxygen.css" rel="stylesheet" type="text/css" />
18        <link href="bootstrap.css" rel="stylesheet" type="text/css"/>
19<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
20<link href="libevdevdoxygen.css" rel="stylesheet" type="text/css"/>
21        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
22        <script type="text/javascript" src="doxy-boot.js"></script>
23    </head>
24    <body>
25        <nav class="navbar navbar-default" role="navigation">
26            <div class="container">
27                <div class="navbar-header">
28                    <a class="navbar-brand">libevdev 1.13.1</a>
29                </div>
30            </div>
31        </nav>
32        <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
33            <div class="content" id="content">
34                <div class="container">
35                    <div class="row">
36                        <div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
37                            <div style="margin-bottom: 15px;">
38<!-- end header part -->
39<!-- Generated by Doxygen 1.9.6 -->
40<script type="text/javascript">
41/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
42var searchBox = new SearchBox("searchBox", "search/",'.html');
43/* @license-end */
44</script>
45<script type="text/javascript" src="menudata.js"></script>
46<script type="text/javascript" src="menu.js"></script>
47<script type="text/javascript">
48/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
49$(function() {
50  initMenu('',true,false,'search.php','Search');
51  $(document).ready(function() { init_search(); });
52});
53/* @license-end */
54</script>
55<div id="main-nav"></div>
56</div><!-- top -->
57<!-- window showing the filter options -->
58<div id="MSearchSelectWindow"
59     onmouseover="return searchBox.OnSearchSelectShow()"
60     onmouseout="return searchBox.OnSearchSelectHide()"
61     onkeydown="return searchBox.OnSearchSelectKey(event)">
62</div>
63
64<!-- iframe showing the search results (closed by default) -->
65<div id="MSearchResultsWindow">
66<div id="MSearchResults">
67<div class="SRPage">
68<div id="SRIndex">
69<div id="SRResults"></div>
70<div class="SRStatus" id="Loading">Loading...</div>
71<div class="SRStatus" id="Searching">Searching...</div>
72<div class="SRStatus" id="NoMatches">No Matches</div>
73</div>
74</div>
75</div>
76</div>
77
78<div class="header">
79  <div class="summary">
80<a href="#typedef-members">Typedefs</a> &#124;
81<a href="#enum-members">Enumerations</a> &#124;
82<a href="#func-members">Functions</a>  </div>
83  <div class="headertitle"><div class="title">Library logging facilities</div></div>
84</div><!--header-->
85<div class="contents">
86
87<p>libevdev provides two methods of logging library-internal messages.
88<a href="#details">More...</a></p>
89<table class="memberdecls">
90<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
91Typedefs</h2></td></tr>
92<tr class="memitem:gaf36c721d273c0794251eb7dacea2f0a4"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__logging.html#gaf36c721d273c0794251eb7dacea2f0a4">libevdev_log_func_t</a>) (enum <a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> priority, void *data, const char *file, int line, const char *func, const char *format, va_list args)</td></tr>
93<tr class="memdesc:gaf36c721d273c0794251eb7dacea2f0a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logging function called by library-internal logging.  <br /></td></tr>
94<tr class="separator:gaf36c721d273c0794251eb7dacea2f0a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
95<tr class="memitem:gab7eb997be2b701cc6f42e7b4c3478269"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__logging.html#gab7eb997be2b701cc6f42e7b4c3478269">libevdev_device_log_func_t</a>) (const struct libevdev *dev, enum <a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> priority, void *data, const char *file, int line, const char *func, const char *format, va_list args)</td></tr>
96<tr class="memdesc:gab7eb997be2b701cc6f42e7b4c3478269"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logging function called by library-internal logging for a specific libevdev context.  <br /></td></tr>
97<tr class="separator:gab7eb997be2b701cc6f42e7b4c3478269"><td class="memSeparator" colspan="2">&#160;</td></tr>
98</table><table class="memberdecls">
99<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
100Enumerations</h2></td></tr>
101<tr class="memitem:ga0b798d0864f2b1b10e4603f9431b3364"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> { <a class="el" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a21fd1083f2ebd0a25f09ee982e365d5f">LIBEVDEV_LOG_ERROR</a>
102, <a class="el" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a4d13a031b112292ca3e7bab8c6d76abc">LIBEVDEV_LOG_INFO</a>
103, <a class="el" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a760d66d422ffcf89b0f1ddb529b95793">LIBEVDEV_LOG_DEBUG</a>
104 }</td></tr>
105<tr class="separator:ga0b798d0864f2b1b10e4603f9431b3364"><td class="memSeparator" colspan="2">&#160;</td></tr>
106</table><table class="memberdecls">
107<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
108Functions</h2></td></tr>
109<tr class="memitem:gaa60be86b83b3a6c82d8e536ba89ff955"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955">libevdev_set_log_function</a> (<a class="el" href="group__logging.html#gaf36c721d273c0794251eb7dacea2f0a4">libevdev_log_func_t</a> logfunc, void *data)</td></tr>
110<tr class="memdesc:gaa60be86b83b3a6c82d8e536ba89ff955"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a printf-style logging handler for library-internal logging.  <br /></td></tr>
111<tr class="separator:gaa60be86b83b3a6c82d8e536ba89ff955"><td class="memSeparator" colspan="2">&#160;</td></tr>
112<tr class="memitem:gaf6b6842a9ed98b61d0abb421e853fd89"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__logging.html#gaf6b6842a9ed98b61d0abb421e853fd89">libevdev_set_log_priority</a> (enum <a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> priority)</td></tr>
113<tr class="memdesc:gaf6b6842a9ed98b61d0abb421e853fd89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define the minimum level to be printed to the log handler.  <br /></td></tr>
114<tr class="separator:gaf6b6842a9ed98b61d0abb421e853fd89"><td class="memSeparator" colspan="2">&#160;</td></tr>
115<tr class="memitem:ga1da07493a798595cf85c127490b98ee8"><td class="memItemLeft" align="right" valign="top">enum <a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__logging.html#ga1da07493a798595cf85c127490b98ee8">libevdev_get_log_priority</a> (void)</td></tr>
116<tr class="memdesc:ga1da07493a798595cf85c127490b98ee8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the current log priority level.  <br /></td></tr>
117<tr class="separator:ga1da07493a798595cf85c127490b98ee8"><td class="memSeparator" colspan="2">&#160;</td></tr>
118<tr class="memitem:ga2830ff0aa391d8d1111682d3e762091b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__logging.html#ga2830ff0aa391d8d1111682d3e762091b">libevdev_set_device_log_function</a> (struct libevdev *dev, <a class="el" href="group__logging.html#gab7eb997be2b701cc6f42e7b4c3478269">libevdev_device_log_func_t</a> logfunc, enum <a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> priority, void *data)</td></tr>
119<tr class="memdesc:ga2830ff0aa391d8d1111682d3e762091b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a printf-style logging handler for library-internal logging for this device context.  <br /></td></tr>
120<tr class="separator:ga2830ff0aa391d8d1111682d3e762091b"><td class="memSeparator" colspan="2">&#160;</td></tr>
121</table>
122<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
123<p>libevdev provides two methods of logging library-internal messages. </p>
124<p>The old method is to provide a global log handler in <a class="el" href="group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955" title="Set a printf-style logging handler for library-internal logging.">libevdev_set_log_function()</a>. The new method is to provide a per-context log handler in <a class="el" href="group__logging.html#ga2830ff0aa391d8d1111682d3e762091b" title="Set a printf-style logging handler for library-internal logging for this device context.">libevdev_set_device_log_function()</a>. Developers are encouraged to use the per-context logging facilities over the global log handler as it provides access to the libevdev instance that caused a message, and is more flexible when libevdev is used from within a shared library.</p>
125<p>If a caller sets both the global log handler and a per-context log handler, each device with a per-context log handler will only invoke that log handler.</p>
126<dl class="section note"><dt>Note</dt><dd>To set a context-specific log handler, a context is needed. Thus developers are discouraged from using <a class="el" href="group__init.html#ga89bb5bce1c23e293293484b05b12aaf4" title="Initialize a new libevdev device from the given fd.">libevdev_new_from_fd()</a> as important messages from the device initialization process may get lost.</dd>
127<dd>
128A context-specific handler cannot be used for libevdev's uinput devices. <a class="el" href="group__uinput.html">uinput device creation</a> must use the global log handler. </dd></dl>
129<h2 class="groupheader">Typedef Documentation</h2>
130<a id="gab7eb997be2b701cc6f42e7b4c3478269" name="gab7eb997be2b701cc6f42e7b4c3478269"></a>
131<h2 class="memtitle"><span class="permalink"><a href="#gab7eb997be2b701cc6f42e7b4c3478269">&#9670;&#160;</a></span>libevdev_device_log_func_t</h2>
132
133<div class="memitem">
134<div class="memproto">
135      <table class="memname">
136        <tr>
137          <td class="memname">typedef void(* libevdev_device_log_func_t) (const struct libevdev *dev, enum <a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> priority, void *data, const char *file, int line, const char *func, const char *format, va_list args)</td>
138        </tr>
139      </table>
140</div><div class="memdoc">
141
142<p>Logging function called by library-internal logging for a specific libevdev context. </p>
143<p>This function is expected to treat its input like printf would.</p>
144<dl class="params"><dt>Parameters</dt><dd>
145  <table class="params">
146    <tr><td class="paramname">dev</td><td>The evdev device </td></tr>
147    <tr><td class="paramname">priority</td><td>Log priority of this message </td></tr>
148    <tr><td class="paramname">data</td><td>User-supplied data pointer (see <a class="el" href="group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955" title="Set a printf-style logging handler for library-internal logging.">libevdev_set_log_function()</a>) </td></tr>
149    <tr><td class="paramname">file</td><td>libevdev source code file generating this message </td></tr>
150    <tr><td class="paramname">line</td><td>libevdev source code line generating this message </td></tr>
151    <tr><td class="paramname">func</td><td>libevdev source code function generating this message </td></tr>
152    <tr><td class="paramname">format</td><td>printf-style format string </td></tr>
153    <tr><td class="paramname">args</td><td>List of arguments</td></tr>
154  </table>
155  </dd>
156</dl>
157<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955" title="Set a printf-style logging handler for library-internal logging.">libevdev_set_log_function</a> </dd></dl>
158<dl class="section since"><dt>Since</dt><dd>1.3 </dd></dl>
159
160</div>
161</div>
162<a id="gaf36c721d273c0794251eb7dacea2f0a4" name="gaf36c721d273c0794251eb7dacea2f0a4"></a>
163<h2 class="memtitle"><span class="permalink"><a href="#gaf36c721d273c0794251eb7dacea2f0a4">&#9670;&#160;</a></span>libevdev_log_func_t</h2>
164
165<div class="memitem">
166<div class="memproto">
167      <table class="memname">
168        <tr>
169          <td class="memname">typedef void(* libevdev_log_func_t) (enum <a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> priority, void *data, const char *file, int line, const char *func, const char *format, va_list args)</td>
170        </tr>
171      </table>
172</div><div class="memdoc">
173
174<p>Logging function called by library-internal logging. </p>
175<p>This function is expected to treat its input like printf would.</p>
176<dl class="params"><dt>Parameters</dt><dd>
177  <table class="params">
178    <tr><td class="paramname">priority</td><td>Log priority of this message </td></tr>
179    <tr><td class="paramname">data</td><td>User-supplied data pointer (see <a class="el" href="group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955" title="Set a printf-style logging handler for library-internal logging.">libevdev_set_log_function()</a>) </td></tr>
180    <tr><td class="paramname">file</td><td>libevdev source code file generating this message </td></tr>
181    <tr><td class="paramname">line</td><td>libevdev source code line generating this message </td></tr>
182    <tr><td class="paramname">func</td><td>libevdev source code function generating this message </td></tr>
183    <tr><td class="paramname">format</td><td>printf-style format string </td></tr>
184    <tr><td class="paramname">args</td><td>List of arguments</td></tr>
185  </table>
186  </dd>
187</dl>
188<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955" title="Set a printf-style logging handler for library-internal logging.">libevdev_set_log_function</a> </dd></dl>
189
190</div>
191</div>
192<h2 class="groupheader">Enumeration Type Documentation</h2>
193<a id="ga0b798d0864f2b1b10e4603f9431b3364" name="ga0b798d0864f2b1b10e4603f9431b3364"></a>
194<h2 class="memtitle"><span class="permalink"><a href="#ga0b798d0864f2b1b10e4603f9431b3364">&#9670;&#160;</a></span>libevdev_log_priority</h2>
195
196<div class="memitem">
197<div class="memproto">
198      <table class="memname">
199        <tr>
200          <td class="memname">enum <a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a></td>
201        </tr>
202      </table>
203</div><div class="memdoc">
204<table class="fieldtable">
205<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga0b798d0864f2b1b10e4603f9431b3364a21fd1083f2ebd0a25f09ee982e365d5f" name="gga0b798d0864f2b1b10e4603f9431b3364a21fd1083f2ebd0a25f09ee982e365d5f"></a>LIBEVDEV_LOG_ERROR&#160;</td><td class="fielddoc"><p>critical errors and application bugs </p>
206</td></tr>
207<tr><td class="fieldname"><a id="gga0b798d0864f2b1b10e4603f9431b3364a4d13a031b112292ca3e7bab8c6d76abc" name="gga0b798d0864f2b1b10e4603f9431b3364a4d13a031b112292ca3e7bab8c6d76abc"></a>LIBEVDEV_LOG_INFO&#160;</td><td class="fielddoc"><p>informational messages </p>
208</td></tr>
209<tr><td class="fieldname"><a id="gga0b798d0864f2b1b10e4603f9431b3364a760d66d422ffcf89b0f1ddb529b95793" name="gga0b798d0864f2b1b10e4603f9431b3364a760d66d422ffcf89b0f1ddb529b95793"></a>LIBEVDEV_LOG_DEBUG&#160;</td><td class="fielddoc"><p>debug information </p>
210</td></tr>
211</table>
212
213</div>
214</div>
215<h2 class="groupheader">Function Documentation</h2>
216<a id="ga1da07493a798595cf85c127490b98ee8" name="ga1da07493a798595cf85c127490b98ee8"></a>
217<h2 class="memtitle"><span class="permalink"><a href="#ga1da07493a798595cf85c127490b98ee8">&#9670;&#160;</a></span>libevdev_get_log_priority()</h2>
218
219<div class="memitem">
220<div class="memproto">
221      <table class="memname">
222        <tr>
223          <td class="memname">enum <a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> libevdev_get_log_priority </td>
224          <td>(</td>
225          <td class="paramtype">void&#160;</td>
226          <td class="paramname"></td><td>)</td>
227          <td></td>
228        </tr>
229      </table>
230</div><div class="memdoc">
231
232<p>Return the current log priority level. </p>
233<p>Messages higher than this level are printed, others are discarded. This is a global setting.</p>
234<dl class="section return"><dt>Returns</dt><dd>the current log level</dd></dl>
235<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000003">Deprecated:</a></b></dt><dd>Use per-context logging instead, see <a class="el" href="group__logging.html#ga2830ff0aa391d8d1111682d3e762091b" title="Set a printf-style logging handler for library-internal logging for this device context.">libevdev_set_device_log_function()</a>. </dd></dl>
236
237</div>
238</div>
239<a id="ga2830ff0aa391d8d1111682d3e762091b" name="ga2830ff0aa391d8d1111682d3e762091b"></a>
240<h2 class="memtitle"><span class="permalink"><a href="#ga2830ff0aa391d8d1111682d3e762091b">&#9670;&#160;</a></span>libevdev_set_device_log_function()</h2>
241
242<div class="memitem">
243<div class="memproto">
244      <table class="memname">
245        <tr>
246          <td class="memname">void libevdev_set_device_log_function </td>
247          <td>(</td>
248          <td class="paramtype">struct libevdev *&#160;</td>
249          <td class="paramname"><em>dev</em>, </td>
250        </tr>
251        <tr>
252          <td class="paramkey"></td>
253          <td></td>
254          <td class="paramtype"><a class="el" href="group__logging.html#gab7eb997be2b701cc6f42e7b4c3478269">libevdev_device_log_func_t</a>&#160;</td>
255          <td class="paramname"><em>logfunc</em>, </td>
256        </tr>
257        <tr>
258          <td class="paramkey"></td>
259          <td></td>
260          <td class="paramtype">enum <a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a>&#160;</td>
261          <td class="paramname"><em>priority</em>, </td>
262        </tr>
263        <tr>
264          <td class="paramkey"></td>
265          <td></td>
266          <td class="paramtype">void *&#160;</td>
267          <td class="paramname"><em>data</em>&#160;</td>
268        </tr>
269        <tr>
270          <td></td>
271          <td>)</td>
272          <td></td><td></td>
273        </tr>
274      </table>
275</div><div class="memdoc">
276
277<p>Set a printf-style logging handler for library-internal logging for this device context. </p>
278<p>The default logging function is NULL, i.e. the global log handler is invoked. If a context-specific log handler is set, the global log handler is not invoked for this device.</p>
279<dl class="section note"><dt>Note</dt><dd>This log function applies for this device context only, even if another context exists for the same fd.</dd></dl>
280<dl class="params"><dt>Parameters</dt><dd>
281  <table class="params">
282    <tr><td class="paramname">dev</td><td>The evdev device </td></tr>
283    <tr><td class="paramname">logfunc</td><td>The logging function for this device. If NULL, the current logging function is unset and logging falls back to the global log handler, if any. </td></tr>
284    <tr><td class="paramname">priority</td><td>Minimum priority to be printed to the log. </td></tr>
285    <tr><td class="paramname">data</td><td>User-specific data passed to the log handler.</td></tr>
286  </table>
287  </dd>
288</dl>
289<dl class="section note"><dt>Note</dt><dd>This function may be called before <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a>. </dd></dl>
290<dl class="section since"><dt>Since</dt><dd>1.3 </dd></dl>
291
292</div>
293</div>
294<a id="gaa60be86b83b3a6c82d8e536ba89ff955" name="gaa60be86b83b3a6c82d8e536ba89ff955"></a>
295<h2 class="memtitle"><span class="permalink"><a href="#gaa60be86b83b3a6c82d8e536ba89ff955">&#9670;&#160;</a></span>libevdev_set_log_function()</h2>
296
297<div class="memitem">
298<div class="memproto">
299      <table class="memname">
300        <tr>
301          <td class="memname">void libevdev_set_log_function </td>
302          <td>(</td>
303          <td class="paramtype"><a class="el" href="group__logging.html#gaf36c721d273c0794251eb7dacea2f0a4">libevdev_log_func_t</a>&#160;</td>
304          <td class="paramname"><em>logfunc</em>, </td>
305        </tr>
306        <tr>
307          <td class="paramkey"></td>
308          <td></td>
309          <td class="paramtype">void *&#160;</td>
310          <td class="paramname"><em>data</em>&#160;</td>
311        </tr>
312        <tr>
313          <td></td>
314          <td>)</td>
315          <td></td><td></td>
316        </tr>
317      </table>
318</div><div class="memdoc">
319
320<p>Set a printf-style logging handler for library-internal logging. </p>
321<p>The default logging function is to stdout.</p>
322<dl class="section note"><dt>Note</dt><dd>The global log handler is only called if no context-specific log handler has been set with <a class="el" href="group__logging.html#ga2830ff0aa391d8d1111682d3e762091b" title="Set a printf-style logging handler for library-internal logging for this device context.">libevdev_set_device_log_function()</a>.</dd></dl>
323<dl class="params"><dt>Parameters</dt><dd>
324  <table class="params">
325    <tr><td class="paramname">logfunc</td><td>The logging function for this device. If NULL, the current logging function is unset and no logging is performed. </td></tr>
326    <tr><td class="paramname">data</td><td>User-specific data passed to the log handler.</td></tr>
327  </table>
328  </dd>
329</dl>
330<dl class="section note"><dt>Note</dt><dd>This function may be called before <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a>.</dd></dl>
331<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>Use per-context logging instead, see <a class="el" href="group__logging.html#ga2830ff0aa391d8d1111682d3e762091b" title="Set a printf-style logging handler for library-internal logging for this device context.">libevdev_set_device_log_function()</a>. </dd></dl>
332
333</div>
334</div>
335<a id="gaf6b6842a9ed98b61d0abb421e853fd89" name="gaf6b6842a9ed98b61d0abb421e853fd89"></a>
336<h2 class="memtitle"><span class="permalink"><a href="#gaf6b6842a9ed98b61d0abb421e853fd89">&#9670;&#160;</a></span>libevdev_set_log_priority()</h2>
337
338<div class="memitem">
339<div class="memproto">
340      <table class="memname">
341        <tr>
342          <td class="memname">void libevdev_set_log_priority </td>
343          <td>(</td>
344          <td class="paramtype">enum <a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a>&#160;</td>
345          <td class="paramname"><em>priority</em></td><td>)</td>
346          <td></td>
347        </tr>
348      </table>
349</div><div class="memdoc">
350
351<p>Define the minimum level to be printed to the log handler. </p>
352<p>Messages higher than this level are printed, others are discarded. This is a global setting and applies to any future logging messages.</p>
353<dl class="params"><dt>Parameters</dt><dd>
354  <table class="params">
355    <tr><td class="paramname">priority</td><td>Minimum priority to be printed to the log.</td></tr>
356  </table>
357  </dd>
358</dl>
359<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd>Use per-context logging instead, see <a class="el" href="group__logging.html#ga2830ff0aa391d8d1111682d3e762091b" title="Set a printf-style logging handler for library-internal logging for this device context.">libevdev_set_device_log_function()</a>. </dd></dl>
360
361</div>
362</div>
363</div><!-- contents -->
364<!-- HTML footer for doxygen 1.8.8-->
365<!-- start footer part -->
366</div>
367</div>
368</div>
369</div>
370</div>
371<hr class="footer"/><address class="footer"><small>
372Generated by &#160;<a href="http://www.doxygen.org/index.html">
373<img class="footer" src="doxygen.png" alt="doxygen"/>
374</a> 1.9.6
375</small></address>
376</body>
377</html>
378