mirror of https://github.com/pvnis/srsRAN_4G.git
adding support for phy(C level) logging to file
parent
754a657285
commit
1b1301101c
@ -0,0 +1,59 @@
|
|||||||
|
/**
|
||||||
|
*
|
||||||
|
* \section COPYRIGHT
|
||||||
|
*
|
||||||
|
* Copyright 2013-2015 Software Radio Systems Limited
|
||||||
|
*
|
||||||
|
* \section LICENSE
|
||||||
|
*
|
||||||
|
* This file is part of the srsUE library.
|
||||||
|
*
|
||||||
|
* srsUE is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 3 of
|
||||||
|
* the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* srsUE is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* A copy of the GNU Affero General Public License can be found in
|
||||||
|
* the LICENSE file in the top-level directory of this distribution
|
||||||
|
* and at http://www.gnu.org/licenses/.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* File: phy_logger.h
|
||||||
|
* Description: Interface for logging output
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef PHY_LOGGER_H
|
||||||
|
#define PHY_LOGGER_H
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <pthread.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif // __cplusplus
|
||||||
|
typedef enum {LOG_LEVEL_INFO, LOG_LEVEL_DEBUG, LOG_LEVEL_ERROR} phy_logger_level_t;
|
||||||
|
|
||||||
|
typedef void (*phy_log_handler_t)(phy_logger_level_t log_level, void *ctx, char *str);
|
||||||
|
|
||||||
|
void srslte_phy_log_register_handler(void *ctx, phy_log_handler_t handler);
|
||||||
|
|
||||||
|
void srslte_phy_log_print(phy_logger_level_t log_level, const char *format, ...);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif // C++
|
||||||
|
|
||||||
|
#endif // LOGGER_H
|
@ -0,0 +1,59 @@
|
|||||||
|
/**
|
||||||
|
*
|
||||||
|
* \section COPYRIGHT
|
||||||
|
*
|
||||||
|
* Copyright 2013-2015 Software Radio Systems Limited
|
||||||
|
*
|
||||||
|
* \section LICENSE
|
||||||
|
*
|
||||||
|
* This file is part of the srsUE library.
|
||||||
|
*
|
||||||
|
* srsUE is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 3 of
|
||||||
|
* the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* srsUE is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* A copy of the GNU Affero General Public License can be found in
|
||||||
|
* the LICENSE file in the top-level directory of this distribution
|
||||||
|
* and at http://www.gnu.org/licenses/.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
#include <pthread.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <stdarg.h>
|
||||||
|
#include "srslte/phy/common/phy_logger.h"
|
||||||
|
/*********************************************************************
|
||||||
|
Functions for external logging
|
||||||
|
*********************************************************************/
|
||||||
|
static phy_log_handler_t phy_log_handler;
|
||||||
|
static void *callback_ctx = NULL;
|
||||||
|
|
||||||
|
void srslte_phy_log_register_handler(void *ctx, phy_log_handler_t handler) {
|
||||||
|
phy_log_handler = handler;
|
||||||
|
callback_ctx = ctx;
|
||||||
|
}
|
||||||
|
|
||||||
|
void srslte_phy_log_print(phy_logger_level_t log_level, const char *format, ...) {
|
||||||
|
va_list args;
|
||||||
|
va_start(args, format);
|
||||||
|
if (phy_log_handler) {
|
||||||
|
char *args_msg = NULL;
|
||||||
|
if(vasprintf(&args_msg, format, args) > 0) {
|
||||||
|
phy_log_handler(log_level, callback_ctx, args_msg);
|
||||||
|
}
|
||||||
|
if (args_msg) {
|
||||||
|
free(args_msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
va_end(args);
|
||||||
|
}
|
Loading…
Reference in New Issue