Gert Drapers, whom I consider to be a super-genius of the SQL Server world and owner of the very useful website http://www.sqldev.net/, wrote a useful little script a few years ago that I thought I'd share. This is a SQL query that will show who and what is causing the log of a database, in this case tempdb, to grow:
USE tempdb
GOSELECT Operation,
Context,
\[Log Size\] = SUM(\[Log Record Length\])
FROM ::fn_dblog(null, null)
GROUP BY Operation, Context
GO
This dumps the active part of the log in tempdb and provides an aggregate per operation and the context it occured in. The \[Object Name\] and \[Index Name\] columns provide info on which object, \[Server UID\], \[UID\] and \[SPID\] can provide user context when applicable.
Cheers,
-Kevin