\doxysection{logging\+\_\+internal.\+h}
\label{logging__internal_8h_source}\index{include/osmocom/core/logging\_internal.h@{include/osmocom/core/logging\_internal.h}}
\textbf{ Go to the documentation of this file.}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{preprocessor}{\#pragma once}}
\DoxyCodeLine{2 }
\DoxyCodeLine{7 \textcolor{preprocessor}{\#include <stdbool.h>}}
\DoxyCodeLine{8 \textcolor{preprocessor}{\#include <osmocom/core/logging.h>}}
\DoxyCodeLine{9 \textcolor{preprocessor}{\#include <osmocom/core/utils.h>}}
\DoxyCodeLine{10 }
\DoxyCodeLine{11 \textcolor{comment}{/* maximum length of the log string of a single log event (typically  line) */}}
\DoxyCodeLine{12 \textcolor{preprocessor}{\#define MAX\_LOG\_SIZE   4096}}
\DoxyCodeLine{13 }
\DoxyCodeLine{14 \textcolor{comment}{/* maximum number of log statements we queue in file/stderr target write queue */}}
\DoxyCodeLine{15 \textcolor{preprocessor}{\#define LOG\_WQUEUE\_LEN  156}}
\DoxyCodeLine{16 }
\DoxyCodeLine{17 \textcolor{keyword}{struct }log\_thread\_state \{}
\DoxyCodeLine{18         \textcolor{comment}{/* Whether we are inside a code path to generate logging output: */}}
\DoxyCodeLine{19         \textcolor{keywordtype}{bool} logging\_active;}
\DoxyCodeLine{20         \textcolor{comment}{/* Cache TID: */}}
\DoxyCodeLine{21         \textcolor{keywordtype}{long} \textcolor{keywordtype}{int} tid;}
\DoxyCodeLine{22 \};}
\DoxyCodeLine{23 }
\DoxyCodeLine{24 \textcolor{keyword}{extern} \textcolor{keywordtype}{void} *tall\_log\_ctx;}
\DoxyCodeLine{25 \textcolor{keyword}{extern} \textcolor{keyword}{struct }log\_info *osmo\_log\_info;}
\DoxyCodeLine{26 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }value\_string loglevel\_strs[];}
\DoxyCodeLine{27 \textcolor{keyword}{extern} \textcolor{keyword}{struct }llist\_head osmo\_log\_target\_list;}
\DoxyCodeLine{28 \textcolor{keyword}{extern} \_\_thread \textcolor{keyword}{struct }log\_thread\_state log\_thread\_state;}
\DoxyCodeLine{29 }
\DoxyCodeLine{30 \textcolor{keywordtype}{void} assert\_loginfo(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *src);}
\DoxyCodeLine{31 }
\DoxyCodeLine{32 \textcolor{keywordtype}{int} log\_output\_buf(\textcolor{keywordtype}{char} *buf, \textcolor{keywordtype}{int} buf\_len, \textcolor{keyword}{struct} log\_target *target, \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} subsys,}
\DoxyCodeLine{33                    \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} level, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *file, \textcolor{keywordtype}{int} line, \textcolor{keywordtype}{int} cont,}
\DoxyCodeLine{34                    \textcolor{keyword}{const} \textcolor{keywordtype}{char} *format, va\_list ap);}
\DoxyCodeLine{35 }
\DoxyCodeLine{36 \textcolor{keywordtype}{void} log\_target\_file\_destroy(\textcolor{keyword}{struct} log\_target *target);}
\DoxyCodeLine{37 }

\end{DoxyCode}
