Best approach to mirror All databases of a sql server
I do not see what version of SQL Server you are using and from the tag assuming it is SQL Server.  

From Books Online:
This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Use Always On Availability Groups instead.


If you are at 2012 or above I highly recommend you to consider Always ON Availability group. Besides High Availability you can also gain performance benefit by offloading certain maintenance operations and read traffic.  It will depend on your setup, application design and requirement. You can read more in details here.
FYI :This technology is built upon mirroring which you mentioned in the question.
Log Shipping is definitely another option but your read only copy cannot be available for read traffic all the time and not in sync as close to real time as Always ON Availability Group.  See details about Log Shipping here.


Few more options that you can consider based on your requirements:


Failover Clustering
Failover Clustering in conjuntion with storage level replication.
AlwaysOn Failover Clustering Instances
Replication