summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2011-04-13 10:58:21 +0200
committerantirez <antirez@gmail.com>2011-04-13 10:58:21 +0200
commit996d503d1aab68bf0220951ab71a1ef9b8678b4a (patch)
tree4942d9ca0fc032a8e02387e65e86dfa9bd987b42
parenta54d9805ee1c46d574aab8e349fd778d3a4bc67b (diff)
downloadredis-996d503d1aab68bf0220951ab71a1ef9b8678b4a.tar.gz
ASCII ART FTW
-rw-r--r--src/Makefile2
-rw-r--r--src/asciilogo.h18
-rw-r--r--src/redis.c30
-rw-r--r--src/redis.h1
4 files changed, 47 insertions, 4 deletions
diff --git a/src/Makefile b/src/Makefile
index f99be4b9c..a566d4ea1 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -83,7 +83,7 @@ redis-check-dump.o: redis-check-dump.c lzf.h
redis-cli.o: redis-cli.c fmacros.h version.h ../deps/hiredis/hiredis.h \
sds.h zmalloc.h ../deps/linenoise/linenoise.h help.h
redis.o: redis.c redis.h fmacros.h config.h ae.h sds.h dict.h adlist.h \
- zmalloc.h anet.h zipmap.h ziplist.h intset.h version.h
+ zmalloc.h anet.h zipmap.h ziplist.h intset.h version.h asciilogo.h
release.o: release.c release.h
replication.o: replication.c redis.h fmacros.h config.h ae.h sds.h dict.h \
adlist.h zmalloc.h anet.h zipmap.h ziplist.h intset.h version.h
diff --git a/src/asciilogo.h b/src/asciilogo.h
new file mode 100644
index 000000000..878a10700
--- /dev/null
+++ b/src/asciilogo.h
@@ -0,0 +1,18 @@
+char *ascii_logo =
+" _._ \n"
+" _.-``__ ''-._ \n"
+" _.-`` `. `_. ''-._ Redis %s (%s/%d) %s bit\n"
+" .-`` .-```. ```\\/ _.,_ ''-._ \n"
+" ( ' , .-` | `, ) Running in %s mode\n"
+" |`-._`-...-` __...-.``-._|'` _.-'| Port: %d\n"
+" | `-._ `._ / _.-' | PID: %ld\n"
+" `-._ `-._ `-./ _.-' _.-' \n"
+" |`-._`-._ `-.__.-' _.-'_.-'| \n"
+" | `-._`-._ _.-'_.-' | http://redis.io \n"
+" `-._ `-._`-.__.-'_.-' _.-' \n"
+" |`-._`-._ `-.__.-' _.-'_.-'| \n"
+" | `-._`-._ _.-'_.-' | \n"
+" `-._ `-._`-.__.-'_.-' _.-' \n"
+" `-._ `-.__.-' _.-' \n"
+" `-._ _.-' \n"
+" `-.__.-' \n\n";
diff --git a/src/redis.c b/src/redis.c
index 22c653543..9112adb52 100644
--- a/src/redis.c
+++ b/src/redis.c
@@ -205,14 +205,20 @@ void redisLogRaw(int level, const char *msg) {
time_t now = time(NULL);
FILE *fp;
char buf[64];
+ int rawmode = (level & REDIS_LOG_RAW);
+ level &= 0xff; /* clear flags */
if (level < server.verbosity) return;
fp = (server.logfile == NULL) ? stdout : fopen(server.logfile,"a");
if (!fp) return;
- strftime(buf,sizeof(buf),"%d %b %H:%M:%S",localtime(&now));
- fprintf(fp,"[%d] %s %c %s\n",(int)getpid(),buf,c[level],msg);
+ if (rawmode) {
+ fprintf(fp,"%s",msg);
+ } else {
+ strftime(buf,sizeof(buf),"%d %b %H:%M:%S",localtime(&now));
+ fprintf(fp,"[%d] %s %c %s\n",(int)getpid(),buf,c[level],msg);
+ }
fflush(fp);
if (server.logfile) fclose(fp);
@@ -227,7 +233,7 @@ void redisLog(int level, const char *fmt, ...) {
va_list ap;
char msg[REDIS_MAX_LOGMSG_LEN];
- if (level < server.verbosity) return;
+ if ((level&0xff) < server.verbosity) return;
va_start(ap, fmt);
vsnprintf(msg, sizeof(msg), fmt, ap);
@@ -1715,6 +1721,23 @@ void usage() {
exit(1);
}
+void redisAsciiArt(void) {
+#include "asciilogo.h"
+ char *buf = zmalloc(1024*16);
+
+ snprintf(buf,1024*16,ascii_logo,
+ REDIS_VERSION,
+ redisGitSHA1(),
+ strtol(redisGitDirty(),NULL,10) > 0,
+ (sizeof(long) == 8) ? "64" : "32",
+ server.cluster_enabled ? "cluster" : "stand alone",
+ server.port,
+ (long) getpid()
+ );
+ redisLogRaw(REDIS_NOTICE|REDIS_LOG_RAW,buf);
+ zfree(buf);
+}
+
int main(int argc, char **argv) {
long long start;
@@ -1733,6 +1756,7 @@ int main(int argc, char **argv) {
if (server.daemonize) daemonize();
initServer();
if (server.daemonize) createPidFile();
+ redisAsciiArt();
redisLog(REDIS_NOTICE,"Server started, Redis version " REDIS_VERSION);
#ifdef __linux__
linuxOvercommitMemoryWarning();
diff --git a/src/redis.h b/src/redis.h
index 26f334512..7e3a8c8f0 100644
--- a/src/redis.h
+++ b/src/redis.h
@@ -179,6 +179,7 @@
#define REDIS_VERBOSE 1
#define REDIS_NOTICE 2
#define REDIS_WARNING 3
+#define REDIS_LOG_RAW (1<<10) /* Modifier to log without timestamp */
/* Anti-warning macro... */
#define REDIS_NOTUSED(V) ((void) V)