[Senna-java-commit 1] [svn] [7] * src/java/senna/SennaLogger.java: appear

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2008年 12月 19日 (金) 18:32:06 JST


Revision: 7
          http://svn.sourceforge.jp/view?root=senna-java&view=rev&rev=7
Author:   mir
Date:     2008-12-19 18:32:06 +0900 (Fri, 19 Dec 2008)

Log Message:
-----------
* src/java/senna/SennaLogger.java: appear
* src/jni/senna_SennaLogger.h: appear
* src/jni/senna_SennaLogger.c: appear
* src/jni/Makefile: add SennaLogger
* src/java/senna/Senna.java: add sen_log_xxx flags
* src/jni/senna_Senna.h: add sen_log_xxx flags
* build.xml: add SennaLogger

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/build.xml
    trunk/src/java/senna/Senna.java
    trunk/src/jni/Makefile
    trunk/src/jni/senna_Senna.h

Added Paths:
-----------
    trunk/src/java/senna/SennaLogger.java
    trunk/src/jni/senna_SennaLogger.c
    trunk/src/jni/senna_SennaLogger.h


-------------- next part --------------
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2008-12-18 08:04:08 UTC (rev 6)
+++ trunk/ChangeLog	2008-12-19 09:32:06 UTC (rev 7)
@@ -1,3 +1,12 @@
+2008-12-19  Tetsuro IKEDA <ikdtt****@gmail*****>
+	* src/java/senna/SennaLogger.java: appear
+	* src/jni/senna_SennaLogger.h: appear
+	* src/jni/senna_SennaLogger.c: appear
+	* src/jni/Makefile: add SennaLogger
+	* src/java/senna/Senna.java: add sen_log_xxx flags
+	* src/jni/senna_Senna.h: add sen_log_xxx flags
+	* build.xml: add SennaLogger
+
 2008-12-18  Tetsuro IKEDA <ikdtt****@gmail*****>
 	* build.xml: add DB API classes for javah
 	* src/jni/senna_SennaContext.h: appeared

Modified: trunk/build.xml
===================================================================
--- trunk/build.xml	2008-12-18 08:04:08 UTC (rev 6)
+++ trunk/build.xml	2008-12-19 09:32:06 UTC (rev 7)
@@ -67,6 +67,9 @@
     <javah classpath="${build.dest}"
            class="senna.Cursor"
            outputfile="${jni.source}/senna_Cursor.h" />
+    <javah classpath="${build.dest}"
+           class="senna.SennaLogger"
+           outputfile="${jni.source}/senna_SennaLogger.h" />
   </target>
   <target name="jni" depends="jar">
     <exec dir="${jni.source}" executable="make" />

Modified: trunk/src/java/senna/Senna.java
===================================================================
--- trunk/src/java/senna/Senna.java	2008-12-18 08:04:08 UTC (rev 6)
+++ trunk/src/java/senna/Senna.java	2008-12-19 09:32:06 UTC (rev 7)
@@ -96,6 +96,36 @@
     /** SEN_CTX_BATCH_MODE */
     public static final int SEN_CTX_BATCH_MODE = 0x0004;
 
+    /** sen_log_none */
+    public static final int SEN_LOG_NONE = 0;
+
+    /** sen_log_emerg */
+    public static final int SEN_LOG_EMERG = 1;
+
+    /** sen_log_alert */
+    public static final int SEN_LOG_ALERT = 2;
+
+    /** sen_log_crit */
+    public static final int SEN_LOG_CRIT = 3;
+
+    /** sen_log_error */
+    public static final int SEN_LOG_ERROR = 4;
+
+    /** sen_log_warning */
+    public static final int SEN_LOG_WARNING = 5;
+
+    /** sen_log_notice */
+    public static final int SEN_LOG_NOTICE = 6;
+
+    /** sen_log_info */
+    public static final int SEN_LOG_INFO = 7;
+
+    /** sen_log_debug */
+    public static final int SEN_LOG_DEBUG = 8;
+
+    /** sen_log_dump */
+    public static final int SEN_LOG_DUMP = 9;
+
     /**
      * call sen_init().
      * 

Added: trunk/src/java/senna/SennaLogger.java
===================================================================
--- trunk/src/java/senna/SennaLogger.java	                        (rev 0)
+++ trunk/src/java/senna/SennaLogger.java	2008-12-19 09:32:06 UTC (rev 7)
@@ -0,0 +1,69 @@
+/*
+ * Copyright(C) 2008 Tetsuro IKEDA <ikdtt****@gmail*****>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+package senna;
+
+/**
+ * senna.log management
+ */
+public class SennaLogger {
+    /**
+     * <pre>
+     *  open log file with below values.
+     *  path: senna.log
+     *  level: sen_log_notice
+     * </pre>
+     *
+     * @throws SennaException
+     */
+    public static void open() throws SennaException {
+	open("senna.log", Senna.SEN_LOG_NOTICE);
+    }
+
+    /**
+     * open log file.
+     *
+     * @param path log file path
+     * @param level log level
+     * @throws SennaException
+     */
+    public static native void open(String path, int level) throws SennaException;
+
+    /**
+     * close log file.
+     *
+     * @throws SennaException
+     */
+    public static native void close() throws SennaException;
+
+    /**
+     * get current log level.
+     *
+     * @return current log level
+     * @throws SennaException
+     */
+    public static native int getLevel() throws SennaException;
+
+    /**
+     * set log level.
+     *
+     * @param level log level
+     * @throws SennaException
+     */
+    public static native void setLevel(int level) throws SennaException;
+}

Modified: trunk/src/jni/Makefile
===================================================================
--- trunk/src/jni/Makefile	2008-12-18 08:04:08 UTC (rev 6)
+++ trunk/src/jni/Makefile	2008-12-19 09:32:06 UTC (rev 7)
@@ -1,11 +1,12 @@
-CC = gcc
+]CC = gcc
 OPT = -Wall -fPIC
 INCLUDES = -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
 LIBS = -lsenna
 
 all: libsennajava.so
 
-libsennajava.so: senna_java.o senna_Senna.o senna_Index.o senna_Records.o senna_Snippet.o
+libsennajava.so: senna_java.o senna_Senna.o senna_Index.o senna_Records.o senna_Snippet.o \
+                 senna_SennaLogger.o
 	$(CC) $(OPT) $(INCLUDES) $(LIBS) -shared -o $@ $^
 
 senna_java.o: senna_java.c senna_java.h
@@ -23,6 +24,9 @@
 senna_Snippet.o: senna_Snippet.c senna_Snippet.h
 	$(CC) $(OPT) $(INCLUDES) -o $@ -g -c $<
 
+senna_Logger.o: senna_SennaLogger.c senna_SennaLogger.h
+	$(CC) $(OPT) $(INCLUDES) -o $@ -g -c $<
+
 clean:
 	rm -f *.so *.o
 

Modified: trunk/src/jni/senna_Senna.h
===================================================================
--- trunk/src/jni/senna_Senna.h	2008-12-18 08:04:08 UTC (rev 6)
+++ trunk/src/jni/senna_Senna.h	2008-12-19 09:32:06 UTC (rev 7)
@@ -53,6 +53,26 @@
 #define senna_Senna_SEN_CTX_USE_QL 3L
 #undef senna_Senna_SEN_CTX_BATCH_MODE
 #define senna_Senna_SEN_CTX_BATCH_MODE 4L
+#undef senna_Senna_SEN_LOG_NONE
+#define senna_Senna_SEN_LOG_NONE 0L
+#undef senna_Senna_SEN_LOG_EMERG
+#define senna_Senna_SEN_LOG_EMERG 1L
+#undef senna_Senna_SEN_LOG_ALERT
+#define senna_Senna_SEN_LOG_ALERT 2L
+#undef senna_Senna_SEN_LOG_CRIT
+#define senna_Senna_SEN_LOG_CRIT 3L
+#undef senna_Senna_SEN_LOG_ERROR
+#define senna_Senna_SEN_LOG_ERROR 4L
+#undef senna_Senna_SEN_LOG_WARNING
+#define senna_Senna_SEN_LOG_WARNING 5L
+#undef senna_Senna_SEN_LOG_NOTICE
+#define senna_Senna_SEN_LOG_NOTICE 6L
+#undef senna_Senna_SEN_LOG_INFO
+#define senna_Senna_SEN_LOG_INFO 7L
+#undef senna_Senna_SEN_LOG_DEBUG
+#define senna_Senna_SEN_LOG_DEBUG 8L
+#undef senna_Senna_SEN_LOG_DUMP
+#define senna_Senna_SEN_LOG_DUMP 9L
 /*
  * Class:     senna_Senna
  * Method:    init

Added: trunk/src/jni/senna_SennaLogger.c
===================================================================
--- trunk/src/jni/senna_SennaLogger.c	                        (rev 0)
+++ trunk/src/jni/senna_SennaLogger.c	2008-12-19 09:32:06 UTC (rev 7)
@@ -0,0 +1,100 @@
+/*
+ * Copyright(C) 2008 Tetsuro IKEDA <ikdtt****@gmail*****>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#include "senna_java.h"
+#include "senna_SennaLogger.h"
+
+static const char* log_file_path;
+static int log_level;
+static FILE *fp = NULL;
+
+void senna_logger_func(int level, const char *time, const char *title,
+                       const char *msg, const char *location, void *func_arg)
+{
+  const char slev[] = " EACewnid-";
+  if (fp)
+  {
+    fprintf(fp, "%s|%c|%s %s %s\n", time, *(slev + log_level), title, msg, location);
+      fflush(fp);
+  }
+}
+
+sen_logger_info senna_logger = {
+  sen_log_notice,
+  SEN_LOG_TIME|SEN_LOG_MESSAGE,
+  senna_logger_func,
+  NULL
+};
+
+/*
+ * Class:     senna_SennaLogger
+ * Method:    open
+ * Signature: (Ljava/lang/String;I)V
+ */
+JNIEXPORT void JNICALL
+Java_senna_SennaLogger_open(JNIEnv *env, jclass clazz, jstring path_str, jint level)
+{
+  log_file_path = (*env)->GetStringUTFChars(env, path_str, NULL);
+  log_level = level;
+
+  if (!fp)
+  {
+    fp = fopen(log_file_path, "a");
+  }
+
+  senna_logger.max_level = (sen_log_level) log_level;
+  sen_logger_info_set(&senna_logger);
+}
+
+/*
+ * Class:     senna_SennaLogger
+ * Method:    close
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL
+Java_senna_SennaLogger_close(JNIEnv *env, jclass clazz)
+{
+  if (fp)
+  {
+    fclose(fp);
+    fp = NULL;
+  }
+}
+
+/*
+ * Class:     senna_SennaLogger
+ * Method:    getLevel
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL
+Java_senna_SennaLogger_getLevel(JNIEnv *env, jclass clazz)
+{
+  return (jint) log_level;
+}
+
+/*
+ * Class:     senna_SennaLogger
+ * Method:    setLevel
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL
+Java_senna_SennaLogger_setLevel(JNIEnv *env, jclass clazz, jint level)
+{
+  log_level = level;
+  senna_logger.max_level = (sen_log_level) log_level;
+}

Added: trunk/src/jni/senna_SennaLogger.h
===================================================================
--- trunk/src/jni/senna_SennaLogger.h	                        (rev 0)
+++ trunk/src/jni/senna_SennaLogger.h	2008-12-19 09:32:06 UTC (rev 7)
@@ -0,0 +1,45 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class senna_SennaLogger */
+
+#ifndef _Included_senna_SennaLogger
+#define _Included_senna_SennaLogger
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class:     senna_SennaLogger
+ * Method:    open
+ * Signature: (Ljava/lang/String;I)V
+ */
+JNIEXPORT void JNICALL Java_senna_SennaLogger_open
+  (JNIEnv *, jclass, jstring, jint);
+
+/*
+ * Class:     senna_SennaLogger
+ * Method:    close
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_senna_SennaLogger_close
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     senna_SennaLogger
+ * Method:    getLevel
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_senna_SennaLogger_getLevel
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     senna_SennaLogger
+ * Method:    setLevel
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_senna_SennaLogger_setLevel
+  (JNIEnv *, jclass, jint);
+
+#ifdef __cplusplus
+}
+#endif
+#endif


Senna-java-commit メーリングリストの案内
Back to archive index