A couple of scripts I use occasionally help me report the space used by FILEGROUP and the Log Space used are shown below in this article.

This first script queries the sys.allocation_units (Transact-SQL) and sys.data_spaces (Transact-SQL) dynamic management views (DMV) which contain a row for each allocation unit and filegroups (or data spaces) respectively.   Allocation units and database storage concepts are explained in detail in the SQL Server Books Online in the following articles:

-- space used by filegroup
SELECT
    ds.[data_space_id] AS [FileGroupID]
    ,ds.[name] AS [FileGroup]
    ,(SUM(au.[total_pages])*8)/1024 AS [Reserved (MB)]
    ,(SUM(au.[used_pages])*8)/1024 AS [Used (MB)]
FROM sys.allocation_units au
    INNER JOIN sys.data_spaces ds ON au.[data_space_id] = ds.[data_space_id]
WHERE au.[type] > 0 -- (0 = Dropped)
GROUP BY ds.[data_space_id], ds.[name]
ORDER BY ds.[data_space_id]

The next script uses the DBCC SQLPERF (Transact-SQL) command to report the transaction log space, then filters the output to limit the results to the current database.

-- log file space used
SET NOCOUNT ON;
CREATE TABLE #logspace (
    database_name sysname,
    log_size_mb NUMERIC(15,8),
    log_space_percent NUMERIC(15,8),
    status SMALLINT );
INSERT INTO #logspace EXECUTE('dbcc sqlperf(logspace)');
SELECT * FROM #logspace WHERE database_name = 'AdventureWorks';
DROP TABLE #logspace;

I hope you find them useful.