将Java项目打包成可执行jar包,运行在Linux系统下,使用crontab设置成定时运行时,其中利用log4j配置的应每天产生一个日志,然而并没有,应是路径问题。现用如下方式解决,记录下来,以备后用。
log4j.properties的配置如下:(在控制台输出,并每天生成一个文件)
此间通过log_home设置相对路径,在Java程序中写成如下:
如上设置,当当前目录并非jar包所在目录时,运行jar,亦会在jar包放置路径下生成日志文件。
注:1.放置jar包在文件系统中时,jar包、lib文件夹、config文件夹里的数据库配置文件与log4j的配置文件都在同一父目录下,这四个文件并列,不需要设置config文件夹,在myeclipse中的Java项目运行时需如上图设置config文件夹;
2.PropertyConfigurator.configure(filename);只需在主函数中设置一次,其他被调用的类的函数不用设置;
3.每个类要使用log4j时,需在该类中public static Logger logger = Logger.getLogger(ClassName.class);做此操作,其中ClassNme需用该类类名代替;
4.进行完上述操作后,即可使用logger进行各个级别的输出了,如:logger.info("一天数据 "+startTime +" "+pointSiteInfo.getName()+" 获取成功");