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