If you read carefully docs on ScalingFunctions especially last example, you will see arbitrary well-defined functions can be applied to scaling.

Did you try that? For instance:
data=Transpose[Table[Sort[RandomReal[{1,1000},100]],2]];
ListPlot[data,
PlotTheme->"Detailed",
ScalingFunctions->{
{-Log[#]&,InverseFunction[-Log[#]&]},
{Log,InverseFunction[Log]}}]
