The receiver needs all of the columns to be in the result set that it's creating events from. You DO NOT need to have all of the columns in your schema - you just need to make sure the resultset being built contains the columns.
You do this by using aliases to rename or add missing columns, and specifying default values if the column is missing Examples: If you have a column named THREAD, just include THREAD as one of the columns being selected if you don't have column representing the THREAD information in your table, use: "" as THREAD If you have a column representing thread information, but isn't named THREAD, use: myThreadColumnName as THREAD Hope that clarifies. Scott Deboy COMOTIV SYSTEMS 111 SW Columbia Street Ste. 950 Portland, OR 97201 Telephone: 503.224.7496 Cell: 503.997.1367 Fax: 503.222.0185 [EMAIL PROTECTED] www.comotivsystems.com -----Original Message----- From: Rally, Varun [mailto:[EMAIL PROTECTED] Sent: Thu 7/3/2008 1:09 PM To: Log4J Users List Subject: RE: Question for CustomSQLDBReceiver Hello, I believe I am doing all of the steps mentioned below. I think the issue is with the configuration file where I have the SQL. In CustomSQLDBReceiver, there is an example query.... select logger as LOGGER, timestamp as TIMESTAMP, level as LEVEL, thread as THREAD, message as MESSAGE, ndc as NDC, mdc as MDC, class as CLASS, method as METHOD, file as FILE, line as LINE, concat("{{application,databaselogs,hostname,mymachine, log4jid,", COUNTER,"}}") as PROPERTIES, "" as THROWABLE from logtable I have 1 question in the above statement. 1) Do I need to have all the columns as part of table? Right now my table structure is not having following columns THREAD,NDC, MDC, FILE, LINE, PROPERTIES, THROWABLE (If these columns are required, what should be their respective data types). Regards, Varun Rally --------------------------------------------------- Fiserv, A-94/8, SECTOR 58 NOIDA UP INDIA 201301 Phone- 91-120-4023000 extn. 3268 Cell- 91-98990-37800 VOIP - 434-509-0698 Extn. 121 US Phone- 001-303-293-2223 Extn. 22814 -----Original Message----- From: Scott Deboy [mailto:[EMAIL PROTECTED] Sent: Thursday, July 03, 2008 1:51 PM To: Log4J Users List Subject: RE: Question for CustomSQLDBReceiver How to use CustomSQLDBReceiver: 1. create a $userhome/.chainsaw/plugins folder 2. copy your jdbc driver to the plugins folder 3. the Chainsaw downloads page links to an 'inportant distribution notes' link for more info about extended features - go there and follow the instructions for what you're trying to do (db extensions) 4. create a chainsaw xml config file containing a customsqldbreceiver section 4a. make sure to follow the directions in the class javadoc for the receiver for setting up the 'sql' param (read: all fields must be aliased!!) 5. change Chainsaw's 'automatic configuration url' to the URL of the chainsaw xml config file (view-show application wide preferences menu) 7. you may need to check the 'ok to remove security manager' checkbox as well (on the same prefs screen) 8. restart Chainsaw You should have a receiver defined in the receivers panel. If you don't, you haven't got the URL entered correctly in the application-wide prefs screen, or the chainsaw XML config isn't defining the receiver configuration correctly (see an example of a receiver config on the Welcome tab's 'view example receiver configuration' button). If you can't figure this out, turn on your java console, pre-configuration Chainsaw logging goes there. If you don't get a new tab containing your db's events, examine Chainsaw's own logging in the chainsaw-log tab - it should explain what the problem is. If you still have problems, feel free to email the list. Scott Deboy COMOTIV SYSTEMS 111 SW Columbia Street Ste. 950 Portland, OR 97201 Telephone: 503.224.7496 Cell: 503.997.1367 Fax: 503.222.0185 [EMAIL PROTECTED] www.comotivsystems.com -----Original Message----- From: Rally, Varun [mailto:[EMAIL PROTECTED] Sent: Thu 7/3/2008 12:44 PM To: Log4J Users List Subject: RE: Question for CustomSQLDBReceiver I created a table with the following statement. 1) CREATE TABLE `userdb`.`sys_log` ( `log_id` int(10) unsigned NOT NULL auto_increment, `log_date` timestamp NOT NULL default CURRENT_TIMESTAMP, `sys_name` varchar(45) NOT NULL, `machine_name` varchar(45) NOT NULL, `class_name` varchar(45) NOT NULL, `priority` varchar(45) NOT NULL, `message` varchar(45) default NULL, `extended_message` varchar(45) default NULL, `user_id` int(10) unsigned NOT NULL, `method_name` varchar(45) NOT NULL, PRIMARY KEY (`log_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; My config file is like this... 2) <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration > <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true"> <appender name="A2" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.SimpleLayout"/> </appender> <plugin name="CustomDBReceiver" class="org.apache.log4j.db.CustomSQLDBReceiver"> <connectionSource class="org.apache.log4j.db.DriverManagerConnectionSource"> <param name="password" value="admin"/> <param name="user" value="root"/> <param name="driverClass" value="org.gjt.mm.mysql.Driver"/> <param name="url" value="jdbc:mysql://127.0.0.1/user_db"/> </connectionSource> <param name="refreshMillis" value="5000"/> <param name="sql" value='select logger as LOGGER, log_date as TIMESTAMP, priority as LEVEL, message as MESSAGE, class_name as CLASS, method_name as METHOD, concat("{{application,databaselogs,hostname,mymachine,log4jid,", COUNTER, "}}") as PROPERTIES, "" as EXCEPTION from sys_log'/> THREAD, NDC, MDC, FILE, LINE, PROPERTIES, THROWABLE <param name="IDField" value="log_id"/> </plugin> <root> <level value="debug"/> </root> </log4j:configuration> I also setup automatic configuration script to point to my config file in chainsaw. But when I open chainsaw, nothing happens. I have also put the MySQL driver .jar file in .chainsaw/plugins directory. Please let me know what I am missing. Regards, Varun Rally --------------------------------------------------- Fiserv, A-94/8, SECTOR 58 NOIDA UP INDIA 201301 Phone- 91-120-4023000 extn. 3268 Cell- 91-98990-37800 VOIP - 434-509-0698 Extn. 121 US Phone- 001-303-293-2223 Extn. 22814 -----Original Message----- From: Scott Deboy [mailto:[EMAIL PROTECTED] Sent: Thursday, July 03, 2008 10:29 AM To: Log4J Users List Subject: RE: Question for CustomSQLDBReceiver http://logging.apache.org/log4j/companions/receivers/apidocs/org/apache/ log4j/db/CustomSQLDBReceiver.html Add your jdbc jar to the $userhome/.chainsaw/plugins folder and update your chainsaw xml config file to use the receiver (see the Welcome tab - there's a 'view example receiver configuration' button on that tab which contains an example configuration file. The receiver essentially requires you to define aliases from your columns to fixed columns the receiver is going to use to run the query. It also supports an IDField param, which is assumed to be an auto-incrementing int, which will allow you to 'tail' the events from the database when running the query multiple times (if the refreshMillis param is defined). Scott Deboy COMOTIV SYSTEMS 111 SW Columbia Street Ste. 950 Portland, OR 97201 Telephone: 503.224.7496 Cell: 503.997.1367 Fax: 503.222.0185 [EMAIL PROTECTED] www.comotivsystems.com -----Original Message----- From: Rally, Varun [mailto:[EMAIL PROTECTED] Sent: Thu 7/3/2008 9:12 AM To: log4j-user@logging.apache.org Subject: Question for CustomSQLDBReceiver Hello All, I am new to Chainsaw and want to use CustomSQLDBReceiver. Though I have got an idea of what it is, I am not able to get it running. Please provide me an internet link or URL that explains the steps to use a CustomSQLDBReceiver. Thanks in anticipation. Regards, Varun --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]