Hi,
Since you shouldn't use I/O operations inside
EJB methods,
you should avoid using solutions like log4j inside EJB methods.
One approach could be use interceptors to log information before and after EJB method execution. You can get information about what happened inside the method from InvocationContext _ctx (Object executionResult = _ctx.proceed();).
Hope this helps,
Manuel