| career | drupal | java | mac | mysql | perl | scala | uml | unix  

What this is

This file is included in the "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Other links

The source code

// Here is a code example to configure the JDBCAppender without a configuration-file

import org.apache.log4j.*;
import java.sql.*;
import java.lang.*;
import java.util.*;

public class Log4JTest
	// Create a category instance for this class
	static Category cat = Category.getInstance(Log4JTest.class.getName());

	public static void main(String[] args)
		// A JDBCIDHandler
		MyIDHandler idhandler = new MyIDHandler();

		// Ensure to have all necessary drivers installed !
			Driver d = (Driver)(Class.forName("oracle.jdbc.driver.OracleDriver").newInstance());
		catch(Exception e){}

		// Set the priority which messages have to be logged

		// Create a new instance of JDBCAppender
		JDBCAppender ja = new JDBCAppender();

		// Set options with method setOption()
		ja.setOption(JDBCAppender.CONNECTOR_OPTION, "MyConnectionHandler");
		ja.setOption(JDBCAppender.URL_OPTION, "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(");
		ja.setOption(JDBCAppender.USERNAME_OPTION, "mex_pr_dev60");
		ja.setOption(JDBCAppender.PASSWORD_OPTION, "mex_pr_dev60");

		ja.setOption(JDBCAppender.TABLE_OPTION, "logtest");

		// There are two ways to setup the column-descriptions :
		// 1. Use the the method setOption(JDBCAppender.COLUMNS_OPTION, column-description)
		//ja.setOption(JDBCAppender.COLUMNS_OPTION, "id_seq~EMPTY	id~ID~MyIDHandler	msg~MSG	created_on~TIMESTAMP	created_by~STATIC~:-) Thomas Fenner (");

		// 2. Use the better way of coding with method setLogType(String columnname, int, Object xxx)
		ja.setLogType("id_seq", LogType.EMPTY, "");
		ja.setLogType("id", LogType.ID, idhandler);
		ja.setLogType("msg", LogType.MSG, "");
		ja.setLogType("created_on", LogType.TIMESTAMP, "");
		ja.setLogType("created_by", LogType.STATIC, "FEN");

		// If you just want to perform a static sql-statement, forget about the table- and columns-options,
		// and use this one :
		//ja.setOption(JDBCAppender.SQL_OPTION, "INSERT INTO LOGTEST (id, msg, created_on, created_by) VALUES (1, @MSG@, sysdate, 'me')");

		// other options
		//ja.setOption(JDBCAppender.BUFFER_OPTION, "1");
		//ja.setOption(JDBCAppender.COMMIT_OPTION, "Y");

		// Define a layout
		//ja.setLayout(new PatternLayout("%m"));

		// Add the appender to a category

		// These messages with Priority >= setted priority will be logged to the database.

// Implement a sample JDBCConnectionHandler
class MyConnectionHandler implements JDBCConnectionHandler
	Connection con = null;
   //Default connection
	String url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(";
   String username = "mex_pr_dev60";
   String password = "mex_pr_dev60";

   public Connection getConnection()
	return getConnection(url, username, password);

   public Connection getConnection(String _url, String _username, String _password)
		if(con != null && !con.isClosed()) con.close();
			con = DriverManager.getConnection(_url, _username, _password);
	  catch(Exception e){}

	return con;

// Implement a sample JDBCIDHandler
class MyIDHandler implements JDBCIDHandler
	private static long id = 0;

	public synchronized Object getID()
		return new Long(++id);

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller


new blog posts


Copyright 1998-2021 Alvin Alexander,
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.