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&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&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> | 81<a href="#enum-members">Enumerations</a> | 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(* </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"> </td><td class="mdescRight">Logging function called by library-internal logging. <br /></td></tr> 94<tr class="separator:gaf36c721d273c0794251eb7dacea2f0a4"><td class="memSeparator" colspan="2"> </td></tr> 95<tr class="memitem:gab7eb997be2b701cc6f42e7b4c3478269"><td class="memItemLeft" align="right" valign="top">typedef void(* </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"> </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"> </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  </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"> </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 </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"> </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"> </td></tr> 112<tr class="memitem:gaf6b6842a9ed98b61d0abb421e853fd89"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </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> </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"> </td><td class="mdescRight">Return the current log priority level. <br /></td></tr> 117<tr class="separator:ga1da07493a798595cf85c127490b98ee8"><td class="memSeparator" colspan="2"> </td></tr> 118<tr class="memitem:ga2830ff0aa391d8d1111682d3e762091b"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </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">◆ </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">◆ </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">◆ </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 </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 </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 </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">◆ </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 </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">◆ </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 * </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> </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> </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 * </td> 267 <td class="paramname"><em>data</em> </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">◆ </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> </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 * </td> 310 <td class="paramname"><em>data</em> </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">◆ </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> </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  <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