\doxysection{src/core/logging\+\_\+gsmtap.c File Reference}
\label{logging__gsmtap_8c}\index{src/core/logging\_gsmtap.c@{src/core/logging\_gsmtap.c}}


libosmocore log output encapsulated in GSMTAP.  


{\ttfamily \#include \char`\"{}config.\+h\char`\"{}}\newline
{\ttfamily \#include $<$stdarg.\+h$>$}\newline
{\ttfamily \#include $<$stdlib.\+h$>$}\newline
{\ttfamily \#include $<$stdio.\+h$>$}\newline
{\ttfamily \#include $<$string.\+h$>$}\newline
{\ttfamily \#include $<$stdbool.\+h$>$}\newline
{\ttfamily \#include $<$unistd.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/talloc.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/utils.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/gsmtap.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/gsmtap\+\_\+util.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/logging\+\_\+internal.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/timer.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/byteswap.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/thread.\+h$>$}\newline
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ GSMTAP\+\_\+\+MSG\+\_\+\+MAX\+\_\+\+SIZE}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
static void \textbf{ \+\_\+gsmtap\+\_\+raw\+\_\+output} (struct \textbf{ log\+\_\+target} $\ast$target, int \textbf{ subsys}, unsigned int \textbf{ level}, const char $\ast$\textbf{ file}, int line, int cont, const char $\ast$format, va\+\_\+list ap)
\item 
struct \textbf{ log\+\_\+target} $\ast$ \textbf{ log\+\_\+target\+\_\+create\+\_\+gsmtap} (const char $\ast$\textbf{ host}, uint16\+\_\+t port, const char $\ast$ident, bool ofd\+\_\+wq\+\_\+mode, bool add\+\_\+sink)
\begin{DoxyCompactList}\small\item\em Create a new logging target for GSMTAP logging. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
static \+\_\+\+\_\+thread uint32\+\_\+t \textbf{ logging\+\_\+gsmtap\+\_\+tid}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
libosmocore log output encapsulated in GSMTAP. 

Encapsulating the log output inside GSMTAP frames allows us to observer protocol traces (of Um, Abis, A or any other interface in the Osmocom world) with synchronous interspersed log messages.