I'm the maintainer of log4r,
For individual scripts (different .rb files), you could approach this in a few different ways (fitting, I know), first, be mindful that the features I'm covering here are available in >= 1.1.4.
One way would be to set a different PatternFormatter string per script (if you create a yaml or xml configuration file, you can specify different patterns on a per class name basis).
Another way would be to use one of GDC, NDC or MDC in a PatternFormatter.
GDC will set a "Global Diagnostic Context" which is to say, it's a value that is available from all threads running a script. You can use it by putting %g in the pattern and setting the value via GDC.set(String) for more detailed information, see: http://log4r.rubyforge.org/manual.html
NDC and MDC are Nested and Mapped Diagnostic Contexts respectively. The pattern for these is to use %x and %X{Symbol|Object}, and to set them via NDC.set(String) and MDC.put(Symbol|Object, Object)
Yet another way would be to use the Pattern %t, which prints out the filename and line number of where the call was made.
The trade off between each of these methods is that they are progressively more expensive in CPU resource use. I tend to first use GDC for the sort of thing you're asking for.