Does anybody know any event logging framework written in Java? Note that the event logging framework is different from those trace logging framework (e.g. log4j), I need and want a framework handles the system event logging into the database (e.g. one like Microsoft Event Viewer)
There's no fundamental difference between what you call "trace logging" and "event logging". Note that Log4J comes with different appenders, which you can use to send the output to different destinations - the console, a logfile, or a database. Look at JDBCAppender in Log4J, which is an appender that can insert log messages into a database.
Also, how does the Log4J handle retrieving events from the database? I gave a glance at the Log4J's manual, there seems no such a "EventlogManager" which is responsible for persist and retrieve events from the database.
With this, you can set up the table name and the layout of the table (the columns) any way you like. So if you want to log for example Type, Severity, Category etc. then yes, you can set it up like that.