diff options
author | Dan McGee <dan@archlinux.org> | 2007-06-04 23:32:38 -0400 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2007-06-04 23:32:38 -0400 |
commit | 26e3db423abeb4cb5704f89dc0fc50a767f19b47 (patch) | |
tree | d6574466cb8846d162719a49dc38df8f59acbca4 /lib/libalpm/log.c | |
parent | 466b79bf8f9a9b3f37a1a754b40320df9f2f1b4e (diff) | |
parent | 64d36db5f45db15997c6a3987d6f4b0ce147df27 (diff) | |
download | pacman-26e3db423abeb4cb5704f89dc0fc50a767f19b47.tar.xz |
Merge branch 'alpm.c_cleanup' into frontend_config
Conflicts:
lib/libalpm/alpm.c
Diffstat (limited to 'lib/libalpm/log.c')
-rw-r--r-- | lib/libalpm/log.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/libalpm/log.c b/lib/libalpm/log.c index b59ec64e..1be7f0db 100644 --- a/lib/libalpm/log.c +++ b/lib/libalpm/log.c @@ -27,8 +27,50 @@ /* libalpm */ #include "log.h" +#include "handle.h" +#include "util.h" +#include "error.h" #include "alpm.h" +/** \addtogroup alpm_log Logging Functions + * @brief Functions to log using libalpm + * @{ + */ + +/** A printf-like function for logging. + * @param fmt output format + * @return 0 on success, -1 on error (pm_errno is set accordingly) + */ +int SYMEXPORT alpm_logaction(char *fmt, ...) +{ + char str[LOG_STR_LEN]; + va_list args; + + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1)); + + va_start(args, fmt); + vsnprintf(str, LOG_STR_LEN, fmt, args); + va_end(args); + + /* TODO We should add a prefix to log strings depending on who called us. + * If logaction was called by the frontend: + * USER: <the frontend log> + * and if called internally: + * ALPM: <the library log> + * Moreover, the frontend should be able to choose its prefix + * (USER by default?): + * pacman: "PACMAN" + * kpacman: "KPACMAN" + * This would allow us to share the log file between several frontends + * and know who does what */ + return(_alpm_logaction(handle->usesyslog, handle->logfd, str)); +} + +/** @} */ + void _alpm_log(pmloglevel_t flag, char *fmt, ...) { alpm_cb_log logcb = alpm_option_get_logcb(); |