This seems to be a great piece of work....
One question though - it seems as if there is a line missing after the last checkpoint ???
if (select cast(databasepropertyex(db_name(), 'recovery') as varchar(10))) = 'FULL'
???? set @backup_file_name = upper(db_name()) + '_Log_' + replace(replace(replace(convert(varchar(50), getdate(), 120), '-', ''), ' ', ''), ':', '') + '.lbk'
???? set @sql = 'backup log ' + @database_name + ' to disk = ''' + @backup_log_file_path + @backup_file_name + ''' '
???? exec sp_executesql @sql
???? set @sql = 'checkpoint'