On Thu, Apr 25, 2013 at 9:51 AM, Gary Gregory <garydgreg...@gmail.com>wrote:
> On Thu, Apr 25, 2013 at 10:39 AM, Nicholas Williams < > nicho...@nicholaswilliams.net> wrote: > >> First, a quick question: do we anticipate the next version to be beta6 or >> rc1? Just curious. >> > > As long as we are adding features, I'd like to keep rolling Betas. But it > would also be OK to release 2.0 and add appenders later. > > I tried porting our app to 2.0 a couple of weeks ago but ran into lots of > issues, so I'll need to take another stab at it in a couple of weeks again. > We rely on a lot of 1.0 guts so I'll have to think about that some more... > > >> I'm currently working on cleaning up compiler warnings throughout the >> project and should have that completed soon. >> > > Great! > > >> >> I want to go ahead and get the conversation started about database >> appenders. I'd like to see two appenders: >> >> - A JdbcAppender that is capable of logging to any RDBMS for which there >> is a JDBC driver. >> - A MongoAppender that is capable of logging to a MongoDB database. >> > > We should not need a MongoDB appender if there is a JDBC driver for it: > docs.mongodb.org/ecosystem/drivers/java/ > The MongoDB "driver" is not a JDBC driver. You cannot have real JDBC drivers that work with NoSQL databases. You can have wrapper drivers that translate SQL to NoSQL actions, but that would be very inefficient. The MongoDB "driver" is really just an API that you must use directly. Therefore, there must be a separate appender for it. > >> >> The JdbcAppender and MongoAppender would, as far as I can tell, need >> properties for mapping all of the possible logging event properties to >> table columns (or Mongo equivalent). I don't really see any other way to >> accomplish that. We could use layout patterns from the PatternLayout to >> achieve this: <column name="columnName" pattern="PatternLayout >> equivalent-pattern" /> >> > > You can look at Log4J 1 for inspiration. Keep it simple for a start. I > think version 1 just let's you specify a SQL INSERT instead of using some > XML for mapping. > I'd like to avoid simply specifying an INSERT if possible. Logging events that contained user input could result in SQL injection. I will certainly use Log4j 1 for inspiration. > > >> >> I imagine the JdbcAppender having mutually exclusive properties for JDBC >> URL/username/password, DataSource JNDI URL, and class.staticFactoryMethod >> for obtaining a DataSource. >> > > Keep is simple for the first cut ;) > > >> >> The MongoAppender would similarly have mutually exclusive properties for >> connection information and class.statucFactoryMethod for obtaining a Mongo >> instance. >> >> I'd like to take a stab at these after I complete fixing compiler >> warnings, and wanted to start getting feedback/ideas and also see if anyone >> has use cases for other NoSQL appenders. >> > > Search the ML for my note on NoSQL, it looks like there is a JDBC-like API > for NoSQL DBs. > > Gary > > -- > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org > Java Persistence with Hibernate, Second > Edition<http://www.manning.com/bauer3/> > JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> > Spring Batch in Action <http://www.manning.com/templier/> > Blog: http://garygregory.wordpress.com > Home: http://garygregory.com/ > Tweet! http://twitter.com/GaryGregory >