If you want to execute a chi-square test, you must meet the assumptions which will include independence of observations and an expected count of at least 5 in each cell. Note that the observed count can be less than 5 as long as the expected count is at least 5. If the expected count in one or more cells are less than 5, then you will want to collapse cells - for example, collapse the age categories 18-23 and 23-28 into one 18-28 category or collapse the experience categories 5-7 and 7+ into one 5+ category. If you do not meet these assumptions and you still use a chi-square test, then you are not losing details from your data but you are using a test where all of the assumptions have not been met and your result (whether you reject or fail to reject) will be unreliable!
If you do not want to lose the details there, it is possible to execute Fisher's exact test. Fisher's exact test will calculate an exact $p$-value from your data rather than calculating an approximate $p$-value that relies on the assumptions of the chi-square test being met. This exact $p$-value will allow you to evaluate whether or not salary has an association with age or education or experience.
It is important to note that Fisher's exact test, like a chi-squared test, will only check for associations between two variables and cannot check for associations among more than two variables.
With respect to log-linear models, the Wikipedia page for log-linear models has the following suggestions: "If both
(a) the expected frequencies are greater than or equal to 5 for 80% or more of the categories and (b) all expected frequencies are greater than 1 [then using a log-linear model is appropriate.]... Suggested solutions [if either or both of these assumptions are violated] are: delete a variable, combine levels of one variable (e.g., put males and females together), or collect more data."
Logistic regression would be inappropriate here, because the term "logistic regression" as it is most frequently used only applies to dependent variables that are binary, whereas salary (as you specified it) is a categorical outcome.
I would either recommend using "ordinal logistic regression" to indicate that there are multiple ordered categories of salary you seek to predict or using linear regression and predicting salary directly (instead of multiple categories). If you have the raw salary data, then I strongly recommend using that as your dependent variable.