  We first introduce and study the notion of multi-weighted blow-ups, which is later used to systematically construct an explicit yet efficient algorithm for functorial logarithmic resolution in characteristic zero, in the sense of Hironaka. Specifically, for a singular, reduced closed subscheme $X$ of a smooth scheme $Y$ over a field of characteristic zero, we resolve the singularities of $X$ by taking proper transforms $X_i \subset Y_i$ along a sequence of multi-weighted blow-ups $Y_N \to Y_{N-1} \to \dotsb \to Y_0 = Y$ which satisfies the following properties: (i) the $Y_i$ are smooth Artin stacks with simple normal crossing exceptional loci; (ii) at each step we always blow up the worst singular locus of $X_i$, and witness on $X_{i+1}$ an immediate improvement in singularities; (iii) and finally, the singular locus of $X$ is transformed into a simple normal crossing divisor on $X_N$. 
Logarithmic resolution via multi-weighted blow-ups