When Russell discovered his paradox, two ways were invented to avoid Russell's paradox.

For logic with sets, ZFC was developed which restricts the creation of the definition of sets. Only sets that are subset of an existing set can be defined with the axiom of separation. And in some case you first need to to use the axiom of power set.

In type theory a different approach was taken. By giving the functions types, it is not possible to express something as element of itself.

My question is, did the logicians in the 20th century consider other ways to avoid paradoxes (only serious attempts)?

I am not completely satisfied with this way of paradox avoiding. Not because it doesn't work (I think it does work), but it forces me to accept the whole system. It is not an universal trick to avoid paradoxes, but inseparable linked to the system.

So, are there ways to avoid paradoxes that for instance also apply to the Liar's paradox?

I think that in general the following scheme is followed to obtain a contradiction from a paradox (whether it is Russell's paradox or the liar paradox, I don't think it is much different):

1) Assume the paradox.

2) Apply the paradox on itself to obtain the contradiction.

3) Express this in one statement, by discharging the assumption.

4) Reformulate previous result such that becomes exactly the paradox.

5) Apply the paradox on itself to obtain the contradiction.

So, to avoid paradoxes, one or more of the above steps can not be fully unlimited.

Note, that applying a rule on itself in general should not be forbidden, because this happens often in a harmless way (for instance when you instantiate an universal quantifier over a predicate variable, which may result again in something with a similar quantifier).

I am experimenting if you can do the trick with levels. Suppose we have a sentence $C$ with definition: $$ C := A \rightarrow B $$

Here $C$ is not just a propositional parameter, but a type of sentence that can produce one, more or infinite other logical sentences, if a logical sentence is given as input. In case of the Liar's paradox it takes itself as input and will produce $\bot$.

To avoid the paradox, each sentence is given a level and in the case above $A$ and $B$ must be of a lower level than $C$. Since, $A$ and $C$ can not be the same anymore, due to the level restriction, the contradiction can not be concluded anymore.

The level is taken from $\mathbb Z$, rather than $\mathbb N$. This prevents that you run out of levels.

If you have a theorem on a certain level, and the theorem is not under assumption, you may replace the level by the "any" level, since you can do a similar reasoning with any other level. The idea is that most statements gets the "any" level and you don't have to bother about it.

You are not allowed to do this under assumption. So, reasoning under assumption is limited in two ways:

1) You are not allowed to assume the "any" level.

2) You are not allowed to generalize to the "any" level under assumption.

Has anything attempted like this before and is this doomed to fail?

exactlyare its axioms/rules of inference? (Also, if I understand correctly you are stratifyingsentencesas opposed to sets, which I think is overly complicated - you might be interested in New Foundations, which is essentially "type theory without types": sets don't have inherent types, but Comprehension only holds for "typable" formulas.) $\endgroup$ – Noah Schweber Jan 2 '17 at 21:09syntax(mostly - what is an "input string": is it a finite binary string, or an expression in the system, or . . . ) of your system - how doproofswork? What are the axioms and rules of inference? $\endgroup$ – Noah Schweber Jan 2 '17 at 23:14