每个项目都要遇到的打log

本文介绍了一个自定义的日志记录类,该类能为每个线程每天创建独立的日志文件,并包含时间戳。此外,还讨论了可能的改进方向,如引入不同级别的日志记录和更多实用功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

每个项目都要求打log,我也编写了一个适合我现在的机能的log类,它能够每天,针对每一个线程创建一个文件并在里边填写log文字。感觉还有可以提高的地方,比如,log级别debug和运行实现不同的log,好像要用到log4j的什么东西,我没深研究,但是,控制台程序也没那么多配置。至于功能上,我觉得还有可以实现的功能,比如不跨行的单行打印,还有针对类名的多信息打印。

打出来的log类似:


[11:04:31]: system property:mail.smtp.host = lzt-server01
[11:04:31]: prepare to read mail body object
[11:04:31]: create mime mail body!
[11:04:31]: config smtp auth:mail.smtp.auth = true
[11:04:31]: config mail subject
[11:04:31]: set fromer!
[11:04:31]: config mail header :X-IFArea
[11:04:31]: sending mail....
[11:04:31]: sending mail succeed!

 

源程序如下:

/*
 * Logger.java
 *
 * Created on 2008.7.10, pm2:01
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package mail;
import com.sun.org.apache.bcel.internal.generic.CALOAD;
import java.io.*;
import java.util.Date;
import java.util.Calendar;
import java.text.SimpleDateFormat;
/**
 *
 * @author user
 */
public class Logger {
    
    /** Creates a new instance of Logger */
    public Logger() {
    }
    
    public static void println(String log){
        print(log,true);
    }
    
    public static void println(){
        print("",true);
    }
    
    public static void print(String log){
        print(log,false);
    }
    public static void print(String log, boolean newLine){
        try{
            //add time to the log
            log = getSysSecondInString() + log;
            
            //make log file
            File directory = new File("");
            String pathStr = directory.getAbsolutePath();
            File folder = new File(CONSTANT.logAddress);
            folder.mkdir();
            String fileName = CONSTANT.logPrefix + Thread.currentThread().getName() + "_"  + getSystimeInString();
            FileWriter writeFile = new FileWriter(pathStr + "//" + CONSTANT.logAddress + "//" + fileName + CONSTANT.logFileType ,true);
            
            //write log
            PrintWriter bw = new PrintWriter(writeFile);
            if(newLine){
                System.out.println("["+Thread.currentThread().getName() + "]" + log);
                bw.write("/r/n"+log);
            }else{
                System.out.print(log);
                bw.write(log);
            }
            bw.close();
            writeFile.close();
        }catch(FileNotFoundException ex){
            ex.printStackTrace();
        }catch(IOException ex){
            ex.printStackTrace();
        }
    }
    
    private static String getSysSecondInString(){
        Calendar calendar = Calendar.getInstance();
        SimpleDateFormat format=new SimpleDateFormat("[hh:mm:ss]:/t");
        String nowtime=format.format(calendar.getTime());
        return nowtime;
    }
    
    private static String getSystimeInString(){
        Calendar calendar = Calendar.getInstance();
        SimpleDateFormat format=new SimpleDateFormat("yyyy.MM.dd");
        String nowtime=format.format(calendar.getTime());
        return nowtime;
    }
    
}
<think>好的,用户想了解PyCharm中每个项目的文件路径配置方法。首先,我需要回忆一下相关的配置步骤。根据之前看到的引用内容,用户提到了几个关键点,比如通过idea.properties文件修改配置路径,以及项目级别的设置。 首先,全局配置是通过修改idea.properties文件,这在引用[2]和[3]中都有提到。用户需要找到安装目录下的bin文件夹里的这个文件,然后用文本编辑器修改。这里需要指出各个路径参数的作用,比如config、system、plugins等路径的设置。 接下来是项目级别的路径配置。用户可能在每个项目中需要设置不同的内容根或资源文件夹。这时候,需要指导用户如何在PyCharm的Project Structure里添加内容根,或者将目录标记为Sources或Resources。引用[1]提到的“add content roots to pythonpath”可能与此相关,需要详细说明这个选项的作用和如何操作。 另外,用户可能关心的是如何确保每个项目的路径配置是独立的,不会互相干扰。比如,在新建项目时,PyCharm通常会为每个项目创建单独的虚拟环境,但用户可能希望自定义这些路径。这时候需要解释如何在创建项目时选择Existing interpreter或者New environment,并指定路径。 还需要注意,不同的配置层级(全局和项目级)可能会有不同的影响范围,需要明确区分。例如,修改idea.properties会影响所有项目,而项目设置仅影响当前项目。同时,要提醒用户修改配置文件前备份,避免出错。 可能用户遇到的问题包括路径配置错误导致项目无法运行,或者环境变量未正确设置。这时候需要指导用户检查配置步骤,确保路径正确无误,并重启PyCharm使配置生效。 最后,根据用户的需求,生成相关问题,帮助用户进一步了解其他配置选项,比如虚拟环境路径调整、配置模板的使用等。这些问题应该与文件路径配置相关,但扩展用户可能需要的其他配置知识。</think>### PyCharm项目文件路径配置方法 PyCharm支持两种层级的路径配置: **全局配置**(影响所有项目)和**项目级配置**(仅当前项目生效)。 --- #### 一、全局配置(通过`idea.properties`文件) 1. **定位配置文件** 在PyCharm安装目录的`bin`子目录中找到`idea.properties`文件 (例如:`G:\software\Pycharm\PyCharm 2021.2.2\bin\idea.properties`)[^3] 2. **配置关键路径** 用文本编辑器修改以下参数(路径需预先创建): ```properties idea.config.path=自定义/config路径 idea.system.path=自定义/system路径 idea.plugins.path=自定义/plugins路径 idea.log.path=自定义/log路径 [^2] ``` - `config`:存储全局设置(如快捷键、主题) - `system`:缓存文件存放位置 - `plugins`:插件安装目录 - `log`:软件运行日志 3. **生效方式** 修改后重启PyCharm,新路径会自动迁移原路径内容 --- #### 二、项目级配置 1. **内容根目录设置** 右键项目目录 → `Mark Directory as` → 选择标记型: - `Sources Root`:代码根目录(自动索引Python路径) - `Resources Root`:资源文件目录(如配置文件) 2. **Python解释器路径** 通过`File → Settings → Project:xxx → Python Interpreter`: - 选择`Add Interpreter`可配置新的解释器路径 - 使用`Existing environment`指定自定义Python环境 3. **运行配置路径** 在`Run/Debug Configurations`界面: - 勾选`Add content roots to PYTHONPATH`(自动添加项目路径)[^1] - 设置工作目录(Working directory)和脚本路径(Script path) --- #### 三、验证配置 通过以下方式检查路径是否生效: ```python import sys print(sys.path) # 查看Python路径包含情况 print(os.getcwd()) # 查看当前工作目录 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值