first, is it a production enviroment? for production enviroment it is recomended a FULL recovery model
you can always shrink at file-level or database level, personally i always make a log backup before shrinking, so if any recovery is need you would have it backed up.
shrinking without backing up the log could be risky, transaction log contains every operation that has been made to the database so it can restore a previous state (talking about FULL recovery mode). Sometimes a shrink wont help much to reduce the log size, if you haven't made a backup, no free space would be available, remember that the space you see is not always what the database is really using, it's only reserved.
it doesn't cause index fragmentation, inserting new data to tables causes fragmentation to their indexes, and for performance, well... people could be working while shrinking... but shrinking the db or files itself... consumes some server resources and increases the server overall load, so it is recomended you shrink or backup off operation time.
hope it helps