I think you need to understand what you are trying to achieve. If you want to have some kind of AuditLog, which means to know when something happened, why something happened, and who did it, log4j/slf4j etc will be absolutely sufficient. Because you will probably need this data only once and after some weeks and only to answer some questions by the police.
However if you want to know what happens in your application, how many requests this or that components receives, how long do the requests take, how many errors are produced and what happens overall... You need something more powerful than logging framework, and of all open source performance monitoring tools MoSKito is best...
So, if you are interested in knowing what exactly a special user has done - logging is sufficient. If you want to know, what happens in your application - its not.