Fix belated review comments on syslog change.

Bug: 14292866

(cherry picked from commit afe6360627)

Change-Id: I8e3cc6b37b2539e51a27261ffb5d6e58266ce11d
This commit is contained in:
Elliott Hughes 2014-07-23 11:38:38 -07:00
parent 2aa142ffb2
commit 4126c12961
3 changed files with 45 additions and 41 deletions

View File

@ -230,6 +230,7 @@ static void SendRepeat(Out& o, char ch, int count) {
/* Perform formatted output to an output target 'o' */ /* Perform formatted output to an output target 'o' */
template <typename Out> template <typename Out>
static void out_vformat(Out& o, const char* format, va_list args) { static void out_vformat(Out& o, const char* format, va_list args) {
int caller_errno = errno;
int nn = 0; int nn = 0;
for (;;) { for (;;) {
@ -380,7 +381,7 @@ static void out_vformat(Out& o, const char* format, va_list args) {
buffer[1] = '\0'; buffer[1] = '\0';
} else if (c == 'm') { } else if (c == 'm') {
// syslog-like %m for strerror(errno). // syslog-like %m for strerror(errno).
str = strerror(errno); str = strerror(caller_errno);
} else { } else {
__assert(__FILE__, __LINE__, "conversion specifier unsupported"); __assert(__FILE__, __LINE__, "conversion specifier unsupported");
} }

View File

@ -14,9 +14,8 @@
* limitations under the License. * limitations under the License.
*/ */
#include <syslog.h>
#include <stdlib.h> #include <stdlib.h>
#include <syslog.h>
#include "private/libc_logging.h" #include "private/libc_logging.h"
@ -24,6 +23,7 @@ static const char* syslog_log_tag = NULL;
static int syslog_priority_mask = 0xff; static int syslog_priority_mask = 0xff;
void closelog() { void closelog() {
syslog_log_tag = NULL;
} }
void openlog(const char* log_tag, int /*options*/, int /*facility*/) { void openlog(const char* log_tag, int /*options*/, int /*facility*/) {
@ -61,7 +61,7 @@ void vsyslog(int priority, const char* fmt, va_list args) {
// What's our Android log priority? // What's our Android log priority?
priority &= LOG_PRIMASK; priority &= LOG_PRIMASK;
int android_log_priority; int android_log_priority;
if (priority < LOG_ERR) { if (priority <= LOG_ERR) {
android_log_priority = ANDROID_LOG_ERROR; android_log_priority = ANDROID_LOG_ERROR;
} else if (priority == LOG_WARNING) { } else if (priority == LOG_WARNING) {
android_log_priority = ANDROID_LOG_WARN; android_log_priority = ANDROID_LOG_WARN;

View File

@ -35,18 +35,20 @@
__BEGIN_DECLS __BEGIN_DECLS
#define LOG_EMERG 0 /* Priorities are translated to Android log priorities as shown. */
#define LOG_ALERT 1 #define LOG_EMERG 0 /* ERROR */
#define LOG_CRIT 2 #define LOG_ALERT 1 /* ERROR */
#define LOG_ERR 3 #define LOG_CRIT 2 /* ERROR */
#define LOG_WARNING 4 #define LOG_ERR 3 /* ERROR */
#define LOG_NOTICE 5 #define LOG_WARNING 4 /* WARN */
#define LOG_INFO 6 #define LOG_NOTICE 5 /* INFO */
#define LOG_DEBUG 7 #define LOG_INFO 6 /* INFO */
#define LOG_DEBUG 7 /* DEBUG */
#define LOG_PRIMASK 7 #define LOG_PRIMASK 7
#define LOG_PRI(x) ((x) & LOG_PRIMASK) #define LOG_PRI(x) ((x) & LOG_PRIMASK)
/* Facilities are currently ignored on Android. */
#define LOG_KERN 0000 #define LOG_KERN 0000
#define LOG_USER 0010 #define LOG_USER 0010
#define LOG_MAIL 0020 #define LOG_MAIL 0020
@ -74,6 +76,7 @@ __BEGIN_DECLS
#define LOG_MASK(pri) (1 << (pri)) #define LOG_MASK(pri) (1 << (pri))
#define LOG_UPTO(pri) ((1 << ((pri)+1)) - 1) #define LOG_UPTO(pri) ((1 << ((pri)+1)) - 1)
/* openlog(3) flags are currently ignored on Android. */
#define LOG_PID 0x01 #define LOG_PID 0x01
#define LOG_CONS 0x02 #define LOG_CONS 0x02
#define LOG_ODELAY 0x04 #define LOG_ODELAY 0x04
@ -81,11 +84,11 @@ __BEGIN_DECLS
#define LOG_NOWAIT 0x10 #define LOG_NOWAIT 0x10
#define LOG_PERROR 0x20 #define LOG_PERROR 0x20
extern void closelog(void); void closelog(void);
extern void openlog(const char*, int, int); void openlog(const char*, int, int);
extern int setlogmask(int); int setlogmask(int);
extern void syslog(int, const char*, ...) __printflike(2, 3); void syslog(int, const char*, ...) __printflike(2, 3);
extern void vsyslog(int, const char*, va_list) __printflike(2, 0); void vsyslog(int, const char*, va_list) __printflike(2, 0);
__END_DECLS __END_DECLS