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]}}]
