diff --git a/include/osmocom/core/logging.h b/include/osmocom/core/logging.h
index 537dc60..9476211 100644
--- a/include/osmocom/core/logging.h
+++ b/include/osmocom/core/logging.h
@@ -1,10 +1,12 @@
 #ifndef _OSMOCORE_LOGGING_H
 #define _OSMOCORE_LOGGING_H
 
-/*! \file logging.h
- *  \brief Osmocom logging framework
+/*! \defgroup logging Osmocom logging framework
+ *  @{
  */
 
+/*! \file logging.h */
+
 #include <stdio.h>
 #include <stdint.h>
 #include <osmocom/core/linuxlist.h>
@@ -45,12 +47,12 @@
 #define LOGPC(ss, level, fmt, args...) \
 	logp2(ss, level, __FILE__, __LINE__, 1, fmt, ##args)
 
-/* different levels */
-#define LOGL_DEBUG	1	/* debugging information */
+/*! \brief different log levels */
+#define LOGL_DEBUG	1	/*!< \brief debugging information */
 #define LOGL_INFO	3
-#define LOGL_NOTICE	5	/* abnormal/unexpected condition */
-#define LOGL_ERROR	7	/* error condition, requires user action */
-#define LOGL_FATAL	8	/* fatal, program aborted */
+#define LOGL_NOTICE	5	/*!< \brief abnormal/unexpected condition */
+#define LOGL_ERROR	7	/*!< \brief error condition, requires user action */
+#define LOGL_FATAL	8	/*!< \brief fatal, program aborted */
 
 #define LOG_FILTER_ALL	0x0001
 
@@ -68,53 +70,67 @@
 	uint8_t enabled;
 };
 
+/*! \brief Information regarding one logging category */
 struct log_info_cat {
-	const char *name;
-	const char *color;
-	const char *description;
-	uint8_t loglevel;
-	uint8_t enabled;
+	const char *name;		/*!< name of category */
+	const char *color;		/*!< color string for cateyory */
+	const char *description;	/*!< description text */
+	uint8_t loglevel;		/*!< currently selected log-level */
+	uint8_t enabled;		/*!< is this category enabled or not */
 };
 
-/* log context information, passed to filter */
+/*! \brief Log context information, passed to filter */
 struct log_context {
 	void *ctx[LOG_MAX_CTX+1];
 };
 
 struct log_target;
 
+/*! \brief Log filter function */
 typedef int log_filter(const struct log_context *ctx,
 		       struct log_target *target);
 
+/*! \brief Logging configuration, passed to \ref log_init */
 struct log_info {
-	/* filter callback function */
+	/* \brief filter callback function */
 	log_filter *filter_fn;
 
-	/* per-category information */
+	/*! \brief per-category information */
 	struct log_info_cat *cat;
+	/*! \brief total number of categories */
 	unsigned int num_cat;
+	/*! \brief total number of user categories (not library) */
 	unsigned int num_cat_user;
 };
 
+/*! \brief Type of logging target */
 enum log_target_type {
-	LOG_TGT_TYPE_VTY,
-	LOG_TGT_TYPE_SYSLOG,
-	LOG_TGT_TYPE_FILE,
-	LOG_TGT_TYPE_STDERR,
+	LOG_TGT_TYPE_VTY,	/*!< \brief VTY logging */
+	LOG_TGT_TYPE_SYSLOG,	/*!< \brief syslog based logging */
+	LOG_TGT_TYPE_FILE,	/*!< \brief text file logging */
+	LOG_TGT_TYPE_STDERR,	/*!< \brief stderr logging */
 };
 
+/*! \brief structure representing a logging target */
 struct log_target {
-        struct llist_head entry;
+        struct llist_head entry;		/*!< \brief linked list */
 
+	/*! \brief Internal data for filtering */
 	int filter_map;
+	/*! \brief Internal data for filtering */
 	void *filter_data[LOG_MAX_FILTERS+1];
 
+	/*! \brief logging categories */
 	struct log_category *categories;
 
+	/*! \brief global log level */
 	uint8_t loglevel;
+	/*! \brief should color be used when printing log messages? */
 	unsigned int use_color:1;
+	/*! \brief should log messages be prefixed with a timestamp? */
 	unsigned int print_timestamp:1;
 
+	/*! \brief the type of this log taget */
 	enum log_target_type type;
 
 	union {
@@ -133,6 +149,12 @@
 		} tgt_vty;
 	};
 
+	/*! \brief call-back function to be called when the logging framework
+	 *	   wants to log somethnig.
+	 *  \param[[in] target logging target
+	 *  \param[in] level log level of currnet message
+	 *  \param[in] string the string that is to be written to the log
+	 */
         void (*output) (struct log_target *target, unsigned int level,
 			const char *string);
 };
@@ -169,12 +191,7 @@
 					    int facility);
 int log_target_file_reopen(struct log_target *tgt);
 
-/*! \brief Add a new logging target
- */
 void log_add_target(struct log_target *target);
-
-/*! \brief Deelete an existing logging target
- */
 void log_del_target(struct log_target *target);
 
 /* Generate command string for VTY use */
@@ -184,4 +201,6 @@
 struct log_target *log_target_find(int type, const char *fname);
 extern struct llist_head osmo_log_target_list;
 
+/*! }@ */
+
 #endif /* _OSMOCORE_LOGGING_H */
