summaryrefslogtreecommitdiff
path: root/lib/libalpm/log.c
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2007-06-03 23:57:38 -0400
committerDan McGee <dan@archlinux.org>2007-06-04 22:52:04 -0400
commit64d36db5f45db15997c6a3987d6f4b0ce147df27 (patch)
treed18340215958e82d4a9a30ec491d5ee2219645ba /lib/libalpm/log.c
parente0afe6e94a71a6aeb964e9624c2df4f4a2821704 (diff)
downloadpacman-64d36db5f45db15997c6a3987d6f4b0ce147df27.tar.xz
Move functions out of alpm.c to where they belong
alpm.h is the only "publically viewable" file, so there is no reason to have functions in alpm.c that belong in package.c, db.c, etc. Move the functions where they belong and leave only the library init functions in alpm.c. Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'lib/libalpm/log.c')
-rw-r--r--lib/libalpm/log.c42
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();