C++中怎样实现log4j中打印调用函数的方法名和行数的功能

求教:C++中怎样实现log4j中打印调用函数的方法名和行数的功能
在apache的log4j中,如果在属性配置文件log4j.properties中配置了输出格式的属性,如下面所示:
log4j.appender.A1.layout.ConversionPattern=%d{[yy-MM-dd HH:mm:ss SSS]} %p %F(%L) %m%n
则可以输出调用日志的函数所在的文件名,行数和函数名。
logger.info("test");

我记得在C/C++中好像也有__FILE__,__LINE__,__FUNCTION__这样的宏,但是这些宏有个问题,
就是只能输出当前函数所在的文件名,行数和函数名。如果我想实现类似log4j中的打印日志方法的话,
肯定得要把__FILE__,__LINE__,__FUNCTION__作为参数传递进去。

但是log4j中打印日志时并没有其他的参数,我想请问一下C++中怎样实现?

------解决方案--------------------
没用过这个东西,不过在调用的时候你看看应该也是有宏的.
------解决方案--------------------

------解决方案--------------------
接分先!